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.