Generator znaków LCD HD44780 – kod Arduino

Generator znaków LCD HD44780 pozwala narysować własny symbol na matrycy 5 × 8 pikseli i automatycznie przygotowuje tablicę byte oraz kod Arduino. Klikaj pola matrycy, wybierz połączenie równoległe lub I2C, a potem skopiuj gotowy szkic do Arduino IDE.

Możesz utworzyć między innymi ikonę baterii, strzałkę, termometr albo brakujący polski znak.

Sposób połączenia i uruchomienia wyświetlacza HD44780 w Arduino.








































 
Podłączenie:
   równoległe
   I2C
RS
RW GND
Enable
D4
D5
D6
D7
Adres dla I2C (HEX):
Liczba linii
Liczba kolumn
Kod_002
Kod_003

Jak używać generatora znaków LCD?

  1. Kliknij piksele na siatce 5 × 8. Aktywne pola tworzą kształt znaku.
  2. Użyj przycisku Odwróć, jeśli chcesz zamienić zapalone i zgaszone piksele, albo wybierz jeden z gotowych symboli.
  3. Wskaż sposób podłączenia wyświetlacza: bezpośrednio do pinów Arduino albo przez konwerter I2C.
  4. Dla połączenia równoległego wpisz numery pinów. Dla I2C podaj adres modułu oraz liczbę kolumn i wierszy.
  5. Skopiuj wygenerowany kod, wgraj go do płytki i wyświetl znak funkcją lcd.write().

Jak działa znak 5 × 8 w HD44780?

Typowy wyświetlacz LCD 16×2 lub 20×4 ze sterownikiem HD44780 buduje znak z ośmiu wierszy po pięć użytecznych pikseli. Każdy wiersz jest zapisany jako liczba binarna, na przykład B00100. Osiem takich wartości tworzy tablicę byte znak[8].

Własne wzory trafiają do pamięci CGRAM sterownika. W trybie znaków 5 × 8 dostępnych jest osiem pozycji o numerach od 0 do 7. Można wielokrotnie zmieniać ich zawartość, ale jednocześnie ekran przechowuje najwyżej osiem różnych własnych znaków.

Praktyczna wskazówka: znak zapisany pod numerem 0 wyświetlaj jako lcd.write(byte(0)). Użycie samego lcd.print(0) wydrukuje cyfrę zero, a nie zaprojektowaną ikonę.

createChar() i wyświetlanie własnego znaku

Funkcja lcd.createChar(numer, tablica) zapisuje wzór w jednej z ośmiu pozycji CGRAM. Następnie lcd.write(byte(numer)) wysyła znak na ekran. Generator przygotowuje oba fragmenty oraz inicjalizację biblioteki zgodną z wybranym sposobem połączenia.

Dla klasycznej biblioteki LiquidCrystal podawane są piny RS, Enable oraz D4–D7. W wersji I2C używana jest biblioteka LiquidCrystal_I2C. Jej warianty mogą różnić się sposobem inicjalizacji: niektóre wymagają lcd.init(), a inne lcd.begin(). Jeśli kod się nie kompiluje, sprawdź przykład dołączony do zainstalowanej wersji biblioteki.

LCD równoległy czy LCD z konwerterem I2C?

PołączenieZaletyNa co uważać
RównoległeNie wymaga konwertera, działa z biblioteką LiquidCrystalZajmuje zwykle sześć pinów Arduino i wymaga poprawnego ustawienia RS, Enable oraz D4–D7
I2CWykorzystuje tylko SDA i SCL, ułatwia prowadzenie przewodówTrzeba znać adres modułu i użyć pasującej biblioteki

Jeśli nie znasz adresu modułu, uruchom skaner I2C Arduino. Dla wyświetlaczy często spotyka się adresy 0x27 i 0x3F, ale należy sprawdzić konkretny egzemplarz.

Najczęstsze problemy z własnymi znakami

  • Na ekranie pojawia się inny symbol: sprawdź numer przekazany do createChar() i write().
  • Znak jest ucięty: używaj pięciu młodszych bitów w każdym wierszu tablicy.
  • Po dodaniu dziewiątego znaku znika poprzedni: HD44780 przechowuje osiem wzorów 5 × 8 jednocześnie.
  • Wyświetlacz I2C nic nie pokazuje: sprawdź adres, przewody SDA/SCL, zasilanie i regulację kontrastu.
  • Biblioteka zgłasza błąd begin/init: dopasuj instrukcję inicjalizacji do używanej wersji LiquidCrystal_I2C.

Najczęściej zadawane pytania

Ile własnych znaków obsługuje HD44780?

W popularnym trybie 5 × 8 sterownik przechowuje jednocześnie osiem własnych znaków, indeksowanych od 0 do 7.

Czy można zrobić polskie znaki na LCD 16×2?

Tak. Brakujące litery, na przykład ą, ć lub ł, można zapisać w CGRAM jako własne wzory. Limit ośmiu pozycji dotyczy wszystkich niestandardowych znaków używanych w danym momencie.

Czy generator działa z wyświetlaczem 20×4?

Tak, jeśli moduł korzysta ze zgodnego sterownika HD44780. W ustawieniach wersji I2C wybierz właściwą liczbę kolumn i wierszy.

Powiązane materiały

Źródło techniczne: dokumentacja biblioteki LiquidCrystal oraz dokumentacja sterownika HD44780.

Dziękujemy za przeczytanie naszego artykułu. Jeśli doceniasz naszą pracę, prosimy o zapisanie się do bezpłatnego newslettera.

Powyższy przykład przygotowany na bazie kodów autorstwa: Omer Kilic (omerk)
https://omerk.github.io/lcdchargen/