W artykule połączymy wyświetlacz ciekłokrystaliczny 1602 z modułem FC-113 I2C do Arduino, dzięki czemu połączenie zostanie zrealizowane za pomocą tylko dwóch przewodów danych i dwóch przewodów zasilających.
Czy to jest to konieczne
- - Arduino;
- - wyświetlacz LCD 1602 (16 znaków, 2 linie);
- - adapter I2C FC-113;
- - przewody łączące.
Instrukcje
Krok 1
Moduł FC-113 oparty jest na mikroukładzie PCF8574T, który jest 8-bitowym rejestrem przesuwnym - ekspanderem we/wy dla magistrali szeregowej I2C. Na rysunku mikroukład jest oznaczony DD1.
R1 to rezystor dostrajający do regulacji kontrastu wyświetlacza LCD.
Zworka J1 służy do włączania podświetlenia wyświetlacza.
Piny 1…16 służą do podłączenia modułu do pinów wyświetlacza LCD.
Do zmiany adresu urządzenia I2C potrzebne są podkładki kontaktowe A1…A3. Lutując odpowiednie zworki, możesz zmienić adres urządzenia. W tabeli przedstawiono zgodność adresów i zworek: „0” odpowiada otwartemu obwodowi, „1” - zainstalowanej zworki. Domyślnie adres urządzenia to 0x27, czyli wszystkie 3 zworki są otwarte.
Krok 2
Moduł jest podłączony do Arduino standardowo dla magistrali I2C: pin SDA modułu jest podłączony do portu analogowego A4, pin SCL jest podłączony do portu analogowego A5 Arduino. Moduł zasilany jest napięciem +5V z Arduino. Sam moduł jest połączony pinami 1…16 z odpowiednimi pinami 1…16 na wyświetlaczu LCD.
Krok 3
Teraz potrzebujemy biblioteki do pracy z wyświetlaczami LCD za pośrednictwem interfejsu I2C. Możesz użyć na przykład tego: https://www.dfrobot.com/wiki/index.php?title=I2C/TWI_LCD1602_Module_(SKU:_DFR0063)#Sample_Code (link w wierszu "Pobierz przykładowy kod i bibliotekę").
Pobrane archiwum "LiquidCrystal_I2Cv1-1.rar" jest rozpakowane do folderu "\ library", który znajduje się w katalogu Arduino IDE.
Biblioteka obsługuje zestaw standardowych funkcji dla ekranów LCD:
LiquidCrystal () - tworzy zmienną typu LiquidCrystal i akceptuje parametry połączenia wyświetlania (numery pinów), begin() - inicjalizacja wyświetlacza LCD, ustawianie parametrów (liczba linii i symboli);
clear () - czyszczenie ekranu i powrót kursora do pozycji wyjściowej;
home () - powrót kursora do pozycji wyjściowej;
setCursor() - ustawienie kursora na określoną pozycję;
write () - wyświetla znak na ekranie LCD;
print () - wyświetla tekst na ekranie LCD;
kursor () - pokazuje kursor, czyli podkreśl pod miejscem następnego znaku;
noCursor () - ukrywa kursor;
migać () - kursor miga;
noBlink () - anuluje miganie;
noDisplay () - wyłącza wyświetlacz podczas zapisywania wszystkich wyświetlanych informacji;
display () - włącz wyświetlacz podczas zapisywania wszystkich wyświetlanych informacji;
scrollDisplayLeft() - przewija zawartość wyświetlacza o 1 pozycję w lewo;
scrollDisplayRight() - przewija zawartość wyświetlacza o 1 pozycję w prawo;
autoscroll () - włącz autoscroll;
noAutoscroll () - wyłącza automatyczne przewijanie;
leftToRight() - ustawia kierunek tekstu od lewej do prawej;
rightToLeft() - kierunek tekstu od prawej do lewej;
createChar() - tworzy własny znak na ekranie LCD.
Krok 4
Otwórzmy przykład: File -> Samples -> LiquidCrystal_I2C -> CustomChars i przeróbmy go trochę. Wyświetlmy komunikat, na końcu którego będzie migający symbol. Wszystkie niuanse szkicu są skomentowane w komentarzach do kodu.
Krok 5
Przyjrzyjmy się bliżej kwestii tworzenia własnych symboli na ekrany LCD. Każdy znak na ekranie składa się z 35 punktów: 5 szerokich i 7 wysokich (+1 zarezerwowane podkreślenie). W linii 6 powyższego szkicu ustawiamy tablicę 7 liczb: {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0}. Zamieńmy liczby szesnastkowe na binarne: {00000, 01010, 11111, 11111, 01110, 00100, 00000}. Liczby te są niczym innym jak maskami bitowymi dla każdego z 7 wierszy znaku, gdzie „0” oznacza punkt jasny, a „1” punkt ciemny. Na przykład na ekranie pojawi się symbol serca określony jako maska bitowa, jak pokazano na rysunku.
Krok 6
Prześlij szkic do Arduino. Na ekranie wyświetli się określony przez nas napis z migającym kursorem na końcu.