Wesołych Świąt !!! - polskie znaki na tekstowym wyświetlaczu LCD

Oto projekt z użyciem Arduino i ekranu LCD 16x2 z konwerterem LCM1602 I2C. Przykład ten prezentuje jak w prosty sposób wyświetlić własne znaki ą, ł, Ś których normalnie wyświetlacz nie posiada w swojej tablicy znaków.

Standardowe wyświetlacze LCD HD44780 najczęściej stosowane w projektach z Arduino posiadają fabrycznie wbudowany zestaw znaków, z którego można wyświetlać znaki na ekranie. Każdy znak ma swój unikalny numer.

Wyświetlacze tego typu pozwalają użytkownikowi na stworzenie własnych znaków jednak ich ilość jest ograniczona tylko do 8 znaków. Znaki użytkownika są przechowywane w pamięci ekranu do momentu wyłączenia zasilania pod numerami od 0 do 7. Do definiowania własnych znaków można użyć funkcji createChar() z biblioteki LiquidCrystal_I2C jednak wcześniej należy przygotować sobie wzór naszego znaku. Każdy taki znak składa się z matrycy pikseli o wielkości 5 kolumn na 8 wierszy, a najłatwiej zapisać taki znak w ośmioelementowej tablicy typu byte. Każdy element takiej tablicy odpowiada jednemu wierszowi naszego znaku zaczynając od góry, a każdy bit o wartości 1 oznacza, żę w tym wierszu jest zapalony 1 punkt składający się na znak. Najłatwiej elementy w tablicy z naszym znakiem zapisywać liczbami binarnie co po ułożeniu wierszy znaku jeden pod drugim bity o wartości 1 dadzą nam lekko rozciągnięty w pionie obraz znaku, który stworzyliśmy:

Poniższy przykład pokazuje w jaki sposób stworzyć kilka znaków i zapisać je w pamięci wyświetlacza pod wybranymi numerami np. instrukcja createChar(1, znak_l) tworzy znak użytkownika zdefiniowany w tablicy o nazwie "znak_l" pod numerem 1. Wypisanie na ekranie LCD tak stworzonego znaku odbywa się za pomocą funkcji print(String("\1")) lub print("\x01") lub można też użyć funkcji write((byte)1).