Chcesz użyć swojej płytki Arduino do bardziej rozbudowanego projektu niż zwykle? Z pewnością spodoba Ci się pomysł wykorzystania wyświetlacza ciekłokrystalicznego LCD (ang. Liquid Crystal Display). Taki wyświetlacz dodaje dużo atrakcyjnej funkcjonalności. Za jego pomocą możesz śledzić pomiary napięć, powiadomienia, a także tworzyć proste i efektowne animacje. Do obsługi wyświetlacza LCD przez płytki Arduino, producent stworzył dedykowaną bibliotekę, która umożliwia błyskawiczne stworzenie programu do obsługi wyświetlacza LCD o dowolnych wymiarach. W tym artykule przedstawiono szczegóły techniczne dotyczące budowy sprzętowej wraz z przykładowym programem w środowisku Arduino IDE do obsługi wyświetlacza LCD o wymiarach 2×16 znaków w kolorze zielonym.
Wyświetlacz LCD w celu wyświetlenia obrazu wykorzystuje specjalne ciekłe kryształy. Kiedy przez kryształy przepływa prąd elektryczny, stają się one nieprzezroczyste i nieco zmatowiałe, doprowadzając do zablokowania podświetlenia wyświetlacza. Wskutek tego następuje zaciemnienie wybranych obszarów i w ten sposób znaki pojawiają się na wyświetlaczu. Wyświetlacz LCD 2×16 (dostępna także wersja bez przylutowanych złącz) jest znakomitym elementem służącym do wyświetlania obrazu złożonego z tekstu, cyfr, znaków interpunkcyjnych, a także znaków specjalnych zgodnie ze standardem systemu kodowania znaków ASCII. Pole każdego znaku tworzą piksele rozmieszczone w układzie 5×8 – na zdjęciu możecie zobaczyć przykład.
Wyświetlacz LCD 2×16 znaków zielony – opis wyprowadzeń
Wyprowadzenia wyświetlacza LCD 2×16 spełniają następujące funkcje:
“GND” – masa zasilania – wyprowadzenie należy połączyć z masą Arduino.
“VCC” – pin zasilania – wyprowadzenie należy połączyć z pinem zasilania napięciem 5V w Arduino.
“Vo” – regulacja kontrastu i jasności wyświetlacza LCD. Podłączając prosty dzielnik napięcia zbudowany na potencjometrze pośredniczącym między masą a zasilaniem, możemy dokładnie skalibrować kontrast wyświetlacza.
“Rs” – wybór rejestru instrukcji/danych wyświetlacza. Z tego pinu Arduino odczytuje, czy do wyświetlacza należy wysłać dane czy instrukcje. Ten stan jest rozróżniany stanem logicznym odpowiednio niskim dla instrukcji i wysokim dla danych. Przykładowo, kiedy pin RS jest ustawiony w stan niski, wówczas dochodzi do wysyłania instrukcji do wyświetlacza (np. ustawienie kursora w miejsce konkretnego znaku, wyczyszczenie wyświetlacza czy też przesunięcie zawartości wyświetlacza w prawą lub lewą stronę). Natomiast stan wysoki na pinie RS implikuje przesyłanie danych i znaków do wyświetlacza.
“R/W” – zadaniem tego pinu jest odczyt i zapis danych do wyświetlacza.
“E” – Z tego pinu prowadzony jest proces aktywowania wyświetlacza. Kiedy na tym pinie występuje stan niski, wyświetlacz nie wykonuje żadnych czynności. Dopiero po przerzuceniu tego pinu w stan wysoki wyświetlacz przystępuje do przetwarzania otrzymanych danych.
“D0 – D7” – szyna danych. Piny D0 – D7 przyjmują odpowiednie sygnały w formie danych 8-bitowych umożliwiając w ten sposób wyświetlanie znaków zgodnych z kodowaniem ASCII.
“LEDA” i “LEDK” – odpowiednio anoda i katoda podświetlenia wyświetlacza.
Wyświetlacz LCD 2x16 znaków zielony - kod programu w środowisku Arduino IDE
Kod programu do obsługi wyświetlacza LCD za pomocą dyrektywy #include wprowadza do obsługi dedykowaną bibliotekę LiquidCrystal.h. Następnie tworzymy obiekt dla tej biblioteki poprzez przypisywanie poszczególnych pinów Arduino pod parametry wyświetlacza, tzn. jego wyprowadzenia funkcyjne. Dzięki zadeklarowaniu w kodzie biblioteki LiquidCrystal.h możemy wybrać zakres funkcji określony w niniejszej bibliotece specjalnie dla obsługi wyświetlacza LCD. W warunkach początkowych programu używamy funkcji lcd.begin() do określenia wymiarów rzeczywistego, sprzętowego wyświetlacza, tj. ilości jego kolumn i wierszy.
Z uwagi na to, że wyświetlacz ma objętość dwóch wierszy po 16 znaków każdy, wpisujemy w argument funkcji liczby 16 i 2. Następnie wprowadzamy funkcję lcd.clear(), która powoduje, że ekran wyświetlacza zostaje wyczyszczony z dotychczasowej zawartości znaków. Natomiast za pomocą funkcji lcd.setCursor() kursor zostaje przeniesiony w górny, lewy róg wyświetlacza. Natomiast funkcja lcd.print() umożliwia wyświetlenie wprowadzonego tekstu na wyświetlaczu. Przykładowy kod programu do obsługi wyświetlacza LCD:
/*
* Przykładowy program do obsługi wyświetlacza LCD 2×16 znaków
*/
// Wprowadzenie biblioteki obsługującej wyświetlacz LCD:
#include
// Przypisanie pinów wyświetlacza do pinów Arduino. Parametry: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
// Ustawienie wymiarów wyświetlacza (liczba znaków, liczba rzędów):
lcd.begin(16, 2);
// Czyszczenie wyświetlacza z wyświetlanych znaków:
lcd.clear();
}
void loop()
{
lcd.setCursor(0, 0);
// Wprowadzenie komunikatu do wyświetlenia na wyświetlaczu:
lcd.print(” TEST LCD”);
// ustawienie kursora na kolumnę 0, rząd 1
// (rząd nr 1 jest rzędem drugim, ponieważ zaczynamy liczenie od zera):
lcd.setCursor(0, 1);
// Print a message to the LCD.
lcd.print(” WYSWIETLACZ”);
}
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 4.5 / 5. Liczba głosów: 4
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.