Lekcja 9: Wyświetlamy reklamy!
Często istnieje potrzeba otrzymania informacji od urządzenia w postaci znaków czy liczb wyświetlanych bezpośrednio na urządzeniu. Zdarza się
tak w sytuacji gdy urządzenie jest na własnym zasilaniu i nie jest podłączone do komputera. Wtedy niezawodnym i prostym rozwiązaniem jest
podłączenie wyświetlacza LCD.
Rynek wyświetlaczy jest tak bogaty, że ceny tych urządzeń spadły i już za kilkanaście złotych można kupić wyświetlacz LCD, który potrafi
wypisywać 16 znaków w dwóch linijkach. My postaramy się wykorzystać w niniejszej lekcji urządzenie oznaczone symbolem JHD162A-YG zgodne z HD44780.
Symbol: JHD162A-YG. Sterownik zgodny z HD44780.
|
Aby móc podłączyć wyświetlacz do płytki musimy jednak wykorzystać lutownicę. Wyświetlacze kupujemy z gotową płytką sterującą ale nie ma ona przygotowanych wyjść. Trzeba wlutować piny w wyprowadzone otwory. Mamy tu do wyboru różne typy pinów: proste i pod kątem (patrz rysunek poniżej).
Wybrałem piny kątowe, gdyż będzie wtedy możliwość wpięcia wyświetlacza pod kątem prostym. Oprócz możliwości wpięcia wyświetlacza w płytkę możemy skorzystać z przyłączenia za pomocą przewodów z wtykami męsko-żeńskimi. Wyłamujemy zestaw 16 pinów z taśmy i całość lutujemy do wyświetlacza.
Opis pinów wyświetlacza przedstawia poniższa tabelka:
Nr | Nazwa | Opis |
1 | VSS | Masa |
2 | VDD | Zasilanie (+5V) |
3 | V0 | Kontrast |
4 | RS | Wybór rejestru instrukcji wyświetlacza (stan niski) albo rejestru danych (stan wysoki) |
5 | R/W | Odczyt (stan niski) / Zapis (stan wysoki). W trybie bez odczytu flagi zajętości, wyprowadzenie może zostać podpięte do masy. |
6 | E | Jeśli wystąpi zbocze opadające, wyświetlacz jest gotów do odczytu danych z magistrali. |
7-14 | DB0-DB7 | Magistrala danych. Po tych liniach przesyłane są dane oraz instrukcje dla wyświetlacza. |
15 | LEDA | Zasilanie podświetlania. |
16 | LEDK | Masa podświetlania |
Jak widać z opisu pinów, wystarczy zasilić wyświetlacz napięciem 5V, ustalić odpowiednie napięcie dla kontrastu wyświetlacza (wykorzystamy w tym celu potencjometr - czyli opornik z regulowaną rezystancją 10kOhm), oraz podawać na 7-14 instrukcje do wyświetlenia.
Potencjometr zbudowany jest z trzech nóżek i obrotowego mechanizmu zmieniającego wielkość oporu. Dwie z nóżek połączone są ścieżką o stałym oporze. Trzecia połączona
jest ze ślizgaczem, którego położenie na ścieżce można regulować. Ścieżkę oporową wykonuje się z węgla lub zwojów drutu oporowego. Jak widzimy na powyższym schemacie,
potencjometr działa na zasadzie dzielnika napięcia.
Składamy układ wg poniższego schematu.
Piszemy kod jak poniżej:
#include < LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); } void loop() { lcd.setCursor(0,0); lcd.print("Arduino jest "); lcd.setCursor(5,1); lcd.print("super! "); }
W linii 1 załączamy bibliotekę LiquidCrystal, która odpowiada za sterowanie funkcjami wyświetlacza.
W linii 2 podajemy piny sterujące wyświetlaczem.
W linii 4 podajemy liczbę znaków i wierszy w wyświetlaczu.
W linii 7 ustawiamy kursor na pierwszy wiersz i pierwszy znak (wiersze i kolumy numerowane są od 0).
W linii 8 wyświetlamy napis.
W linii 9 ustawiamy kursor na 6 znak drugiego wiersza.
W linii 10 wyświetlamy napis.
Uruchamiamy i działa!
Jak widzimy - to proste! Dlatego skomplikujemy kod tak, by tekst przewijał się jak w reklamach sklepowych czy peronach stacji kolejowych.
#include < LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); lcd.print("Arduino jest super!"); delay(1000); } void loop() { lcd.setCursor(0,0); for (int i=0; i<15; i++){ lcd.scrollDisplayLeft(); delay(200); } }
Jak widzimy, w kodzie jest kilka zmian.
W linii 5 mamy zadeklarowany tekst do wyświetlenia.
W linii 10 zaczyna się pętla, która dla 16 znaków wykonuje funkcję lcd.scrollDisplayLeft() przesuwającą
znaki w lewo z krótką przerwą co 200 milisekund (linia 12).
Oczywiście biblioteka LiquidCrystal zawiera jeszcze możliwość przesuwania w prawo instrukcją lcd.scrollDisplayRight oraz
wiele innych funkcji. Dokładny ich opis znajduje się na oficjalnej stronie Arduino.
W lekcjach późniejszych (grupa zaawansowana), będziemy wykorzystywać wyświetlacz do prezentowania danych z czujników i wrócimy wtedy do jego dodatkowych funkcji.
Powrót do spisu materiałów