V dnešnej dobe grafických a plne farebných displejov sa pokúsime oživiť klasiku – dvojriadkový displej schopný zobraziť úžasných 16 znakov na riadok
Kontroler displeja HD44780 obsahuje ASCII tabuľku znakov, ktoré možme použiť. Navyše je tam miesto pre osem vlastných znakov. V našom prípade si vytvoríme font pre čísla od 1 do 7 a znak stupňa. Povedzme, že sme si zostrojili teplomer zobrazujúci vnutornú a vonkajšiu teplotu, ktorú chceme opticky oddeliť od textových informácií zobrazovaných na displeji. Bohužial miesto je len pre 8 vlastných znakov, takže napríklad pre teploty väčšie ako 27 stupňov možme dať podmienku, že sa použije štandardný font.
Zdrojový kód čísla šesť bude vyzerať asi takto:
byte six[8] = {
B00000,
B00000,
B11111,
B10000,
B11111,
B10001,
B11111,
B00000
};
ASCII tabuľka znakov, ktoré máme štandardne k dispozícii.
A nakoniec samotný zdrojový kód:
// Zdroj - http://www.arduino.cc/en/Tutorial/LiquidCrystal #include <LiquidCrystal.h> // Inicializujeme piny na ktorych je pripojene lcd. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); byte degree[8] = { B00000, B00000, B11100, B10100, B11100, B00000, B00000, B00000 }; byte one[8] = { B00000, B00000, B00001, B00001, B00001, B00001, B00001, B00000 }; byte two[8] = { B00000, B00000, B11111, B00001, B11111, B10000, B11111, B00000 }; byte three[8] = { B00000, B00000, B11111, B00001, B11111, B00001, B11111, B00000 }; byte four[8] = { B00000, B00000, B10010, B10010, B11111, B00010, B00010, B00000 }; byte five[8] = { B00000, B00000, B11111, B10000, B11111, B00001, B11111, B00000 }; byte six[8] = { B00000, B00000, B11111, B10000, B11111, B10001, B11111, B00000 }; byte seven[8] = { B00000, B00000, B11111, B00001, B00001, B00001, B00001, B00000 }; byte eight[8] = { B00000, B00000, B11111, B10001, B11111, B10001, B11111, B00000 }; byte smile[8] = { B00000, B00000, B01010, B01010, B00000, B10001, B01110, B00000 }; byte nine[8] = { B00000, B00000, B11111, B10001, B11111, B00001, B11111, B00000 }; void setup() { // Vytvorime znaky. lcd.createChar(0, degree); lcd.createChar(1, one); lcd.createChar(2, two); lcd.createChar(3, three); lcd.createChar(4, four); lcd.createChar(5, five); lcd.createChar(6, six); lcd.createChar(7, seven); // Nastavime rozmer lcd - 16 znakov, 2 riadky. lcd.begin(16, 2); // Zobrazenie znakov, zacneme na pozicii znak 0, riadok 0. lcd.setCursor(0,0); lcd.write("arduino.sk"); lcd.setCursor(0,1); lcd.write((byte)1); lcd.write((byte)2); lcd.write((byte)3); lcd.write((byte)4); lcd.write((byte)5); lcd.write((byte)6); lcd.write((byte)7); lcd.write("12345"); lcd.setCursor(13,0); lcd.write((byte)2); lcd.write((byte)7); lcd.write((byte)0); lcd.setCursor(13,1); lcd.write((byte)1); lcd.write((byte)2); lcd.write((byte)0); } void loop() { }
Vlastný znak môže byť čokoľvek od srdiečok až po indikátor stavu vybitia batérie. Nakoniec prikladám zopár inšpirácií – pozrite si tu, tiež tu a tu.