Przeczytaj
Budowa wyświetlacza LCD 2×16
Wyświetlacz LCD jest wyposażony w 16 złączy:
VSS – masa
VDD – napięcie zasilające (+5 V)
V0 – regulacja kontrastu
RS – wybór rejestru instrukcji wyświetlacza (stan niski) albo rejestru danych (stan wysoki)
RW (Read/Write) – odczyt (stan niski)/zapis (stan wysoki); w trybie bez odczytu flagi zajętości, wyprowadzenie może zostać podłączone do masy
E (Enable) – jeśli pojawi się zbocze opadające, wyświetlacz jest gotowy do odczytu danych z magistrali
D0–D7 – magistrala danych; po tych liniach przesyłane są dane oraz instrukcje dla wyświetlacza
A – zasilanie podświetlenia
K – masa podświetlania
Wyświetlacz można regulować (ustawić większy lub mniejszy kontrast), aby poprawić czytelność pokazywanych napisów. Potrzebny jest do tego kolejny element – potencjometr, czyli rezystor, którego oporność można zmieniać.
Potencjometr ma postać pokrętła umieszczonego w obudowie z trzema nóżkami. Właśnie za pomocą pokrętła zmieniamy wartość rezystancji.
Przypomnij sobie układ dzielnika napięcia, który omawialiśmy w czasie lekcji poświęconej podstawom elektroniki. Potencjometr jest regulowanym dzielnikiem napięcia: rezystancja między jego dwoma skrajnymi nóżkami jest stała, podobnie jak oporność połączonych szeregowo rezystorów, z których zbudowany jest dzielnik. Zmienia się natomiast rezystancja między wyprowadzeniem środkowym a dowolną ze skrajnych nóżek – zależy ona od położenia pokrętła potencjometru. W rezultacie możemy regulować wartość napięcia wyjściowego dzielnika. Wraz ze zmianami napięcia zmienia się z kolei kontrast wyświetlacza.
Oto schemat podłączenia wyświetlacza do układu z czujnikiem temperatury, diodą LED i brzęczykiem:
Dlaczego tak właśnie należy podłączyć wyświetlacz? Wynika to z jego budowy oraz z bibliotekibiblioteki, którą dołączymy do szkicu. Biblioteki są plikami, w których opisano rozmaite funkcje. Dzięki bibliotekom nie trzeba tworzyć własnych funkcji w szkicu (często zajęłyby one kilkaset linii kodu), lecz wystarczy skorzystać z gotowych zestawów instrukcji.
Biblioteka wykorzystywana do obsługi wyświetlacza LCD została opracowana właśnie dla układu połączeń widocznego na schemacie. Jeżeli zatem wepniesz styki przewodów w inne piny niż te pokazane na rysunku, wyświetlacz nie będzie działał. W takiej sytuacji należałoby dokonać zmian w bibliotece, jednak takiego zadania podejmują się tylko doświadczeni programiści.
Podłączamy wyświetlacz LCD
Lista elementów potrzebnych do skonstruowania termometru z wyświetlaczem:
kompletny układ termometru z poprzedniej lekcji („Arduino – brzęczyk”)
wyświetlacz LCD 2×16
bateria 9 V
klips na baterię 9 V
rezystor 220 omega
potencjometr
przewody i zworki połączeniowe
Bazą obecnego projektu jest układ zbudowany podczas poprzedniej lekcji.
Wpinamy wyświetlacz do płytki stykowej. Najlepiej podłączyć go z boku płytki, aby zostało miejsce na potencjometr.
R1LjajNH99gdu
2. Użyjemy sześciu przewodów o różnych kolorach. Wpinamy styk pierwszego przewodu (w przykładzie jest ma on fioletową koszulkę) do wiersza odpowiadającego złączu D7 na płytce stykowej. Drugi koniec podłączamy do pinu 2. na płytce Arduino.
W taki sam sposób łączymy wyprowadzenie D6 z pinem 3, D5 z pinem 4., D4 z pinem 5., E z pinem 11. i w końcu RS z pinem 12.
Podłączamy potencjometr – wpinamy go tak, aby z obu stron potencjometru zostały wolne kolumny.
4. Łączymy potencjometr z wyświetlaczem – styk przewodu wtykamy w wierszu odpowiadającym wyprowadzeniu V0, a drugi wpinamy w wierszu, w którym znajduje się środkowa nóżka potencjometru.
Doprowadzamy do potencjometru zasilanie i masę, łącząc jedną nóżkę z szyną dodatnią, a drugą z szyną ujemną.
6. Łączymy piny K oraz VSS z szyną ujemną płytki stykowej.
7. Wpinamy rezystor tak, aby połączyć pin A z dodatnią szyną płytki stykowej.
Doprowadzamy zasilanie z dodatniej szyny płytki stykowej do pinu VDD.
Podłączamy masę (szynę ujemną płytki stykowej) do pinu RW.
10. Gotowy układ wygląda tak jak na rysunku niżej. Podłączamy płytkę Arduino do komputera.
Programowanie termometru z wyświetlaczem
Uruchamiamy aplikację Arduino IDE i zapisujemy nowy szkic.
1. Deklarujemy jedną stałą i dwie zmienne. Wskazujemy dzięki nim piny, do których podłączono czujnik temperatury, diodę i brzęczyk. Następnie załączamy bibliotekę niezbędną do obsługi wyświetlacza. Plik biblioteki ma rozszerzenie .h
, a dodaje się go do szkicu korzystając z dyrektywy #include
(potocznie mówimy, że „inkludujemy” bibliotekę). Sama biblioteka nosi nazwę LiquidCrystal.h
.
Musimy też określić, z którymi pinami współpracuje wyświetlacz LCD – nasz jest podłączony do pinów numer 12, 11, 5, 4, 3, 2.
Zwróć uwagę, że najpierw załączamy bibliotekę, a dopiero później wskazujemy piny. Jeżeli wprowadzimy te dwie linie w odwrotnej kolejności, to podczas kompilacji wystąpi błąd.
2. W ciele funkcji setup()
wskazujemy piny wyjściowe. Podobnie jak w poprzednim projekcie są to piny, do których podłączyliśmy diodę LED oraz brzęczyk.
3. Wewnątrz funkcji loop()
definiujemy nową zmienną o nazwie odczyt
. Korzystając z funkcji analogRead()
pobieramy dane z czujnika, po czym obliczamy rzeczywistą temperaturę. Postępujemy tak samo, jak w przypadku termometrów z poprzednich lekcji.
4. Wcześniej przedstawialiśmy poziom temperatury na ekranie. Teraz skorzystamy z wyświetlacza LCD. Najpierw, za pomocą instrukcji lcd.begin(16, 2)
, określamy, z jakim wyświetlaczem mamy do czynienia (w naszym przypadku pokazuje on po 16 znaków w dwóch wierszach).
Następnie, wywołując funkcję setCursor()
, wskazujemy początkowe położenie kursora. Od tego właśnie miejsca będzie wyświetlany wynik pomiaru temperatury. Wywołujemy jeszcze funkcję lcd.print()
– jest ona odpowiednikiem znanej już nam komendy Serial.print()
. Różnica polega na tym, że obecnie komunikat ma pojawić się na wyświetlaczu. Ustawiamy również opóźnienie, określające w jakich odstępach czasowych powinien odbywać się pomiar temperatury (oraz wyświetlanie rezultatu).
5. Pozostaje tylko ustalić, co się stanie, gdy temperatura przekroczy podaną wartość, na przykład 29°C. Przy wyższej temperaturze powinna się zapalić dioda oraz uaktywnić brzęczyk. W przeciwnym wypadku napięcie na obu pinach, do których te elementy są podłączone, będzie mieć poziom niski.
6. Zapisujemy szkic, weryfikujemy go i przesyłamy do płytki.
Przy pierwszym uruchomieniu układu może być konieczna regulacja kontrastu. Aby obraz na wyświetlaczu był jak najbardziej czytelny, eksperymentujemy z ustawieniem pokrętła potencjometru. Operację taką pokazano w filmie niżej.
Czy wszystko działa? Zapewne tak. Odłączamy zatem kabel USB od płytki Arduino. Za pomocą przewodu z klipsem łączymy natomiast baterię 9 V z gniazdem zasilania płytki. Możemy teraz przestawić termometr w dowolne miejsce i przekonać się, czy podaje on wyniki pomiaru temperatury.
Tinkercad
Zróbmy symulację układu z wyświetlaczem LCD 2x16, za pomocą środowiska Tinkercad
.
Jako że będziemy używać wyświetlacza LCD wybierzemy dużą płytkę stykową.
Z listy rozwijanej Komponenty Podstawowe
, wybierz Wszystko
.
Znajdź dużą płytkę i umieść w głównym oknie.
Znajdź i wstaw na płytkę stykową czujnik temperatury.
Znajdź i dodaj do płytki stykowej diodę LED
.
Jako że w dostępnych komponentach nie mamy dostępnego brzęczyka, skorzystamy z przetwornika piezo
.
Do naszej płytki dodajmy teraz wyświetlacz LCD 2x16
.
Dodajmy teraz potencjometr. Ustaw jego wartość na 10 komega
.
Do naszej płytki stykowej dodajmy trzy rezystory o wartości 220 omega
. Jeden dodamy do anody diody LED
, jeden do przetwornika piezo
i jeden do anody diody w wyświetlaczu LCD.
Dodaj teraz moduł Arduino Uno do okna symulacji.
Zaczniemy od podpięcia szyny dodatniej i ujemnej z płytką Arduino Uno. Podepniemy ze sobą szyny górne i dolne.
Do ujemnej szyny podepniemy: trzecią nóżkę czujnika temperatury, katodę diody LED
, wolną nóżkę przetwornika piezo
, pierwszy pin (GND
) wyświetlacza LCD, piąty pin (RW
) wyświetlacza LCD, szesnasty pin (katoda diody) wyświetlacza LCD oraz pierwszą nóżkę potencjometru.
Do dodatniej szyny podpinamy: pierwsza nóżkę czujnika temperatury, drugi pin (VCC
) wyświetlacza LCD oraz trzecią nóżką potencjometru.
Środkową nóżkę potencjometru łączymy z pinem V0
wyświetlacza LCD.
Środkową nóżkę czujnika temperatury łączymy z pinem A0
Arduino Uno.
Wolną nóżkę rezystora wpiętego z przetwornik piezo podpinamy do pinu D6
Arduino.
Wolną nóżkę rezystora wpiętego w anodę diody LED
podpinamy pod pin D7
Arduino.
Teraz przejdziemy do połączenia Arduino z wyświetlaczem LCD. Podpinamy odpowiednio:
pin
RS
wyświetlacza z pinemD12
Arduino,pin
E
wyświetlacza z pinemD11
Arduino,pin
DB4
wyświetlacza z pinemD5
Arduino,pin
DB5
wyświetlacza z pinemD4
Arduino,pin
DB6
wyświetlacza z pinemD3
Arduino,pin
DB7
wyświetlacza z pinemD2
Arduino.
Przejdźmy teraz do pisania kodu. W tym celu klikamy na przycisk Kod
, z listy rozwijanej wybieramy Tekst
, potwierdzamy chęć zmiany widoku i czyścimy zawartość.
Przepisz kod układu z wyświetlaczem LCD 2x16.
Uruchom symulację. Jeśli na wyświetlaczu nic się nie pokazuje, musisz ustawić kontrast potencjometrem. Kliknij na niego lewym przyciskiem myszy i przekręć pokrętło aż na wyświetlaczu pojawią się dane.
Film z ustawienia kontrastu.
Sprawdźmy teraz jak działa nasz termometr z wyświetlaczem LCD.
Film z działania programu.
Słownik
plik zawierający podprogramy (procedury/funkcje) ułatwiające obsługę urządzeń zewnętrznych wraz z wykorzystywanymi w nich predefiniowanymi stałymi oraz typami danych