RgNt5Mfc9aHvi
Zdjęcie przedstawia płytkę Arduino z podłączonymi kabelkami w wyświetlaczem pokazującym godzinę, temperaturę, dzień tygodnia oraz datę. Nad wyświetlaczem widoczne są kolorowe kabelki z wtyczkami wpięte w panel.

I_R_W15_M03 Przykładowe projekty

Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W tym materiale poznasz budowę i sposób działania wyświetlacza LCD 2×16. Dowiesz się, do czego służą jego poszczególne wyprowadzenia oraz jak za pomocą potencjometru regulować kontrast wyświetlanych znaków. Następnie w środowisku Tinkercad zbudujesz układ z Arduino Uno, czujnikiem temperatury, diodą LED i przetwornikiem piezo. Połączysz elementy zgodnie ze schematem, napiszesz program obsługujący wyświetlacz i uruchomisz symulację elektronicznego termometru.

Budowa wyświetlacza LCD 2×16

Wyświetlacz LCD 2×16 to popularny moduł elektroniczny, na który składają się: szklany panel ciekłokrystaliczny, kontroler HD44780, płytka drukowana (PCB) oraz podświetlenie LED. Urządzenie pozwala pokazać 32 znaki w dwóch wierszach (po 16 znaków w każdym).

Wyświetlacz LCD 2×16 widziany od przodu. Moduł ma dwa wiersze po 16 pól znakowych oraz rząd 16 wyprowadzeń służących do zasilania, sterowania, przesyłania danych i podświetlenia.

R1UQZ8C7SJCTP
Wyświetlacz LCD 2×16
Źródło: Contentplus.pl Sp. z o.o., Wyświetlacz LCD 2×16, licencja: CC BY-SA 3.0.
Wyświetlacz LCD 2×16 i jego złącza

Znajomość ich jest bardzo ważna w następnych etapach tworzenia działającego układu.

Ciekawostka

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ć.

RDCR7VPXUE39N
Potencjometr
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.
Dzielnik napięcia
Dzielnik napięcia

to prosty układ złożony najczęściej z dwóch rezystorów połączonych szeregowo. Pozwala uzyskać na wyjściu napięcie niższe niż napięcie zasilania.

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.

R1GMDGE31S8QD
Układ ideowy
Źródło: Contentplus.pl Sp. z o.o., Schemat ideowy.

Dlaczego tak właśnie należy podłączyć wyświetlacz? Wynika to z jego budowy oraz z biblioteki, 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.

Budujemy wyświetlacz

Przygotujmy symulację układu z wyświetlaczem LCD 2x16.

1
Krok 1 - Dodajemy komponenty

Jako że będziemy używać wyświetlacza LCD, wybierzemy płytkę stykową. Z listy rozwijanej Komponenty Podstawowe, wybierz Wszystko.

Do płytki dodajmy teraz wyświetlacz LCD 2x16.

R2KG941ON4NRT
Wyświetlacz LCD 2x16
Źródło: Materiał własny, Wyświetlacz na płytce.
Krok 2 - Dodajemy potencjometr

Dodajmy teraz potencjometr.

R195KNK46977R
Płytka stykowa, wyświetlacz i potencjometr
Źródło: Materiał własny, Potencjometr na płytce.
Krok 3 - Dodajemy rezystor

Do naszej płytki stykowej dodajmy trzy rezystory o wartości 220 omega do anody diody w wyświetlaczu LCD.

RMAVQC8FNACGQ
Płytka stykowa, wyświetlacz, rezystor i potencjometr
Źródło: Materiał własny, Rezystor na płytce.

Dodaj teraz moduł Arduino Uno do okna symulacji.

Krok 4 - Wszystko komponenty

Zaczniemy od podpięcia szyny dodatniej i ujemnej z płytką Arduino Uno. Podepniemy ze sobą szyny górne i dolne.

R1KHP94PS7E12
Źródło: Materiał własny, Gotowy układ.

Kodujemy układ

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ść.

Aby wyświetlacz działał poprawnie potrzebna jest  biblioteka LiquidCrystal, która zawiera gotowe funkcje umożliwiające sterowanie wyświetlaczem LCD. 

Linia 1. kratka include otwórz nawias ostrokątny LiquidCrystal kropka h zamknij nawias ostrokątny.

Następnie tworzony jest obiekt lcd_1, za pomocą którego program będzie obsługiwał wyświetlacz. Liczby określają piny Arduino połączone z wyprowadzeniami LCD:

  • 12 – pin RS,

  • 11 – pin E,

  • 5 – pin DB4,

  • 4 – pin DB5,

  • 3 – pin DB6,

  • 2 – pin DB7.

Linia 1. LiquidCrystal lcd podkreślnik 1 otwórz nawias okrągły 12 przecinek 11 przecinek 5 przecinek 4 przecinek 3 przecinek 2 zamknij nawias okrągły średnik.
Ważne!

Wyświetlacz pracuje w trybie czterobitowym, dlatego wykorzystywane są linie danych DB4–DB7.

Tworzony jest obiekt lcd_1, za pomocą którego program będzie obsługiwał wyświetlacz. Liczby określają piny Arduino połączone z wyprowadzeniami LCD:

  • – pin RS, 12

  • – pin E, 11

  • – pin DB4, 5

  • – pin DB5, 4

  • – pin DB6, 3

  • – pin DB7. 2

Wyświetlacz pracuje w trybie czterobitowym, dlatego wykorzystywane są linie danych DB4–DB7.

Pamiętajmy, że funkcja setup() wykonuje się tylko raz — po uruchomieniu lub zresetowaniu Arduino. 

Linia 1. void setup otwórz nawias okrągły zamknij nawias okrągły. Linia 2. otwórz nawias klamrowy. Linia 3. lcd podkreślnik 1 kropka begin otwórz nawias okrągły 16 przecinek 2 zamknij nawias okrągły średnik. Linia 4. lcd podkreślnik 1 kropka print otwórz nawias okrągły cudzysłów hello world cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy.

W funkcji setup() są umieszczone dwie instrukcje (funkcje). Pierwsza z nich uruchamia wyświetlacz i określa jego rozmiar: 16 znaków w każdym z 2 wierszy.

Linia 1. lcd podkreślnik 1 kropka begin otwórz nawias okrągły 16 przecinek 2 zamknij nawias okrągły średnik.

Druga wyświetla napis „hello world”. Ponieważ nie ustawiono pozycji kursora, tekst pojawi się od pierwszego znaku w pierwszym wierszu. 

Linia 1. lcd podkreślnik 1 kropka print otwórz nawias okrągły cudzysłów hello world cudzysłów zamknij nawias okrągły średnik.

Funkcja loop() wykonuje się wielokrotnie przez cały czas działania Arduino. W tym programie nie zmienia ona zawartości wyświetlacza. Znajduje się w niej jedynie krótkie opóźnienie wynoszące 10 milisekund, które poprawia działanie symulacji.

Linia 1. void loop otwórz nawias okrągły zamknij nawias okrągły. Linia 2. otwórz nawias klamrowy. Linia 3. delay otwórz nawias okrągły 10 zamknij nawias okrągły średnik. Linia 4. zamknij nawias klamrowy.
Ważne!

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.