Podłączanie LCD 1602 do Arduino: opis, cechy, instrukcje, cechy, problemy i ich rozwiązania

Każdy amator radiowy po pewnej liczbie prostych kiełków dochodzi do celu, jakim jest zbudowanie czegoś imponującego w korzystaniu z czujników i przycisków. O wiele bardziej interesujące jest wyświetlanie danych niż port monitora. Ale wtedy powstaje pytanie: który wyświetlacz wybrać? I ogólnie, jak go podłączyć, co jest potrzebne do połączenia? Odpowiedzi na te pytania zostaną omówione w tym artykule.

LCD 1602

Spośród wielu opcji spośród wyświetlaczy, należy zwrócić uwagę na wyświetlacz LCD1602 na podstawie kontrolera HD4478. Jest to wyświetlacz w dwóch kolorach: białe litery na niebieskim tle, czarne litery na żółtym tle. Podłączenie LCD 1602 do Arduino również nie spowoduje żadnych problemów, ponieważ istnieje wbudowana biblioteka i nie jest wymagane dodatkowe pobieranie. Wyświetlacze różnią się nie tylko ceną, ale również rozmiarem. Najczęściej używane przez radioamatorów 16 x 2, czyli 2 linie po 16 znaków. Ale jest też 20 x 4, gdzie 4 linie po 20 znaków. Wymiary i kolor nie odgrywają żadnej roli w podłączaniu wyświetlacza LCD 1602 do Arduno, łączą się w ten sam sposób. Kąt widzenia wynosi 35 stopni, czas reakcji wyświetlacza wynosi 250 ms. Może pracować w temperaturach od -20 do 70 stopni Celsjusza. Podczas pracy wykorzystuje 4 mA dla ekranu i 120 mA dla podświetlenia.


Gdzie jest używany?

Ten wyświetlacz ma swoją popularność nie tylko w radio amatorach, ale także w dużych producentach. Na przykład drukarki, ekspresy do kawy również używają LCD1602. Wynika to z jego niskiego poziomucena jest warta tego wyświetlacza na chińskich podwórkach 200-300 rubli. Kupno jest właśnie tam, tak jak w naszych sklepach, marże na tym ekranie są bardzo wysokie.

Podłączanie do Arduino

Podłączanie wyświetlacza LCD 1602 do Arduino Nano i Uno nie różni się. Wyświetlacz może pracować w dwóch trybach: 4-bitowym i 8. W przypadku pracy z ośmiobitowym używanym zarówno młodszym, jak i starszym bitem oraz z 4-bitowym - tylko młodszym. Nie ma specjalnego sensu do pracy z 8-bitowym, ponieważ zostanie dodany do podłączenia 4 więcej kontaktów, co nie jest właściwe, ponieważ prędkość nie będzie wyższa, limit aktualizacji wyświetlania - 10 razy na sekundę. Ogólnie rzecz biorąc, wiele kabli służy do podłączenia lcd 1602 do Arduino, co przynosi pewne niedogodności, ale istnieją specjalne shildes, ale o tym później. Zdjęcie pokazuje podłączenie wyświetlacza do Arduino Uno:


Przykład kodu programu:

#include //Dodaj wymaganą bibliotekę
LiquidCrystal lcd (765 432); //(RS, E, DB4 DB5 DB6 DB7)

void setup () {
lcd.begin (16 2); //Ustaw rozmiar ekranu

lcd.setCursor (0 0); //Ustaw kursor na początek pierwszej linii
lcd.print ("Hello, world!"); //Tekst wyjściowy
lcd.setCursor (0 1); //Zainstaluj kursor na początku linii 2
lcd.print ("fb.ru"); //Wypisz tekst
}

void loop () {
}

Co robi kod? Pierwszym zadaniem jest podłączenie biblioteki do pracy z wyświetlaczem. Jak już wspomniano powyżej, biblioteka ta jest już częścią Arduino IDE i nie jest konieczne dodatkowe pobieranie i instalowanie. Określ kontakty, które są podłączone do następujących: RS, E, DB4 DB5 DB6 DB7, odpowiednio. Następnie określa się rozmiar ekranu. Ponieważ pracujemy nad wersją 16-znakową i 2-liniową, piszemy takąznaczenie. Ustawiamy kursor na początek pierwszej linii i dedukujemy nasz pierwszy tekst Hello World. Następnie ustaw kursor na drugiej linii i wyświetl nazwę strony. To wszystko! Uwzględniono połączenie lcd 1602 z Arduino Uno.


& lt; script type = "text /javascript" & gt;
zmienna blockSettings2 = {blockID "R-A-271049-5" renderTo "yandex_rtb_R-A-70350-39" asynchroniczny :! 0};
Jeżeli (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings2.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);

Co to jest I2C i dlaczego jest potrzebny?

Jak wspomniano powyżej, połączenie wyświetlacza wymaga wielu kontaktów. Na przykład podczas pracy z wieloma czujnikami i ekranem LCD 1602 kontakty mogą po prostu nie wystarczyć. Często amatorzy radiowi używają wersji Uno lub Nano, gdzie nie ma zbyt wielu kontaktów. Potem ludzie wymyślili specjalną śildę. Na przykład I2C. Umożliwia podłączenie wyświetlacza za pomocą tylko 4 kontaktów. To dwa razy mniej. Moduł I2C sprzedawany jest osobno, gdzie jest konieczne jego lutowanie i jest już zlutowany na wyświetlaczu LCD 1602.

,

Łączenie za pomocą modułu I2C

łączący się LCD 1602 do Arduino nano I2C zajmuje mało miejsca, a jedynie 4 informacja: ziemia, żywności i 2 wyjściami do transmisji danych. Moc i masa są podłączone odpowiednio do 5 V i GND na Arduino. Pozostały dwa kontakty: SCL i SDA są połączone z dowolnymi pinami analogowymi. Na zdjęciu widać przykład podłączenia lcd 1602 do arduino z modułem I2C:

Kod programu

Jeśli chcesz pracować z wyświetlaczem bez modułukonieczne było użycie tylko jednej biblioteki, a następnie praca z modułem wymaga dwóch bibliotek. Jeden z nich jest już w Arduino IDE - Wire. Kolejną bibliotekę, LiquidCrystal I2C, należy pobrać oddzielnie i zainstalować. Aby zainstalować bibliotekę Arduino, zawartość pobranego archiwum musi zostać pobrana do katalogu głównego Biblioteki. Przykładowy kod wykorzystujący I2C:


& lt; script type = "text /javascript" & gt;
zmienna blockSettings3 = {blockID "R-A-271049-6" renderTo "yandex_rtb_R-A-70350-44" asynchroniczny :! 0};
jeśli (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings3.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings3)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);
include
include
LiquidCrystal_I2C LCD (0x27162); //Zainstaluj wyświetlacz
void setup ()
{
lcd.init ();
lcd.backlight (); //Włącz podświetlenie ekranu
lcd.print ("FB.ru");
lcd.setCursor (8 1);
lcd.print ("LCD 1602");
}
void loop ()
{
//Ustaw kursor na drugą linię i znak zero.
lcd.setCursor (0 1);
//Wyświetlamy liczbę sekund od rozpoczęcia arduktu
lcd.print (millis () /1000);
}

Jak widać, kod jest prawie taki sam.

Jak dodać swoją postać?

Problem z tymi wyświetlaczami polega na tym, że nie ma wsparcia dla znaków i symboli cyrylicy. Na przykład potrzebujesz znaku do pobrania wyświetlacza, aby mógł go wyświetlić. W tym celu wyświetlacz pozwala na utworzenie do 7 znaków. Wyobraź sobie tabelę:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1

Jeśli 0 - nie ma nic, jeśli 1 jest pomalowanym obszarem. W powyższym przykładzie widać tworzenie postaci uśmiechniętego uśmiechu. Na przykład program Arduino będzie wyglądał następująco:

#include
#include //Potrzebujemy biblioteki
//Uśmiech maski bitmapowej
bajtowy uśmiech
=
{
B00010
B00001
B11001
B00001
B11001
B00001
B00010
};
LiquidCrystal lcd (765 432); //(RS, E, DB4 DB5 DB6 DB7)

void setup () {
lcd.begin (16 2); //Ustaw rozmiar ekranu

lcd.createChar (1 uśmiech); //Utwórz znak pod numerem 1

lcd.setCursor (0 0); //Ustawiamy kursor na początek wiersza 1
lcd.print ("1"); //Usuń buźkę (symbol pod numerem 1) - "1"
}

void loop () {
}

Jak widać, została utworzona maska ​​bitowa taki sam jak stół. Po utworzeniu może być wyświetlany jako zmienna na wyświetlaczu. Pamiętaj, że w pamięci można zapisać tylko 7 znaków. W zasadzie to wystarczy. Na przykład, jeśli chcesz pokazać znak w stopniach.

& lt; script async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});

Problemy, z którymi wyświetlacz może nie działać

Występują przypadki, gdy wyświetlacz nie działa. Na przykład włącza się, ale nie wyświetla znaków. Lub wcalejest włączony. Najpierw sprawdź, czy prawidłowo podłączyłeś kontakty. Jeśli używany do podłączenia do LCD Arduino 1202 bez I2C, to bardzo łatwo się zgubić w przewody, które mogą spowodować nieprawidłowe działanie wyświetlacza. Należy również upewnić się, że kontrast wyświetlacza jest zwiększony, ponieważ nawet przy minimalnym kontraście nie jest widoczne, czy wyświetlacz LCD 1602 jest włączony, czy nie. Jeśli to nie pomoże, być może problem leży w lutowaniu styków, kiedy używa się modułu I2C. Częstym powodem, dla którego wyświetlacz może nie działać, jest to, że adres I2C jest nieprawidłowo ustawiony. Fakt, że wielu producentów i mogą umieścić inny adres, trzeba rozwiązać ten:


& lt; script type = "text /javascript" & gt;
blockSettings var = {blockID "R-A-70350-45" renderTo "yandex_rtb_R-A-70350-45", asynchroniczny :! 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);
LiquidCrystal_I2C lcd (0x27162);

W nawiasach widać dwie wartości, 0x27 i 162 (16 2 - to rozmiar wyświetlacza, a następnie 0x27 tak samo I2C adresu). Zamiast tych wartości możesz spróbować umieścić 0x37 lub 0x3F. I kolejny powód jest uszkodzony LCD 1602. Biorąc pod uwagę, że prawie wszystko jest w Chinach Arduino, nie może być w 100% pewni, że zakupiony produkt nie jest małżeństwo.

Plusy i minusy LCD 1602

Rozważmy zalety i wady wyświetlacza LCD 1602. Zalety
  • Cena. Ten moduł można kupić w bardzo przystępnej cenie w chińskich sklepach. Cena jest200-300 rubli. Czasami jest sprzedawany nawet z modułem I2C.
  • Łatwe podłączenie. Prawdopodobnie nikt nie łączy teraz LCD 1602 bez I2C. A w tym module połączenie zajmuje tylko 4 kontakty, żaden "pająk" z przewodów nie będzie.
  • Programowanie. Dzięki gotowym bibliotekom łatwo można pracować z tym modułem, wszystkie funkcje są już zarejestrowane. A jeśli chcesz dodać swój symbol, zajmuje to tylko kilka minut.
  • Wady
  • Podczas korzystania z tysięcy amatorów radiowych nie wykryto żadnych poważnych wad, ale zdarzają się przypadki zakupu małżeństw, ponieważ używane są głównie chińskie warianty wyświetlania.
  • W tym artykule omówiono połączenie LCD 1602 z Arduino, a także przykłady programów do pracy z wyświetlaczem. On naprawdę jest jednym z najlepszych w swojej kategorii, nie tylko dlatego, że jest wybierany przez tysiące radioamatorów dla swoich projektów!

    Powiązane publikacje