Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Drodzy przyjaciele, witajcie w innym Instruktażowym! W tym samouczku przyjrzymy się po raz pierwszy temu dużemu wyświetlaczowi LCD i zbudujemy z niego monitor temperatury i wilgotności.
Zawsze chciałem znaleźć wyświetlacz podobny do wyświetlacza, którego używa moja drukarka 3D, ponieważ jest duży i niedrogi, więc może być bardzo przydatny w wielu projektach. Po rozejrzeniu się odkryłem, że wyświetlacz, którego używa moja drukarka, to ten. Duży wyświetlacz 3,2” ze sterownikiem ST7920 i rozdzielczością 128x64 pikseli. Fajny! Jak widać jest znacznie większy niż większość wyświetlaczy, których używaliśmy do tej pory w naszych projektach, więc przyda się w wielu przyszłych projektach. Kosztuje tylko około 6 USD!
Możesz go pobrać tutaj →
Kieszonkowe dzieci
- Wyświetlacz LCD ST7920 →
- Arduino Uno →
- Czujnik DHT22 →
- Tablica chlebowa →
- Przewody →
Krok 1: Połączenie z Arduino
Zobaczmy teraz, jak go używać z Arduino. Zamierzam dziś użyć Arduino Uno, ale działa z wieloma płytkami Arduino.
Wyświetlacz wykorzystuje interfejs SPI do komunikacji z mikrokontrolerem, dlatego musimy podłączyć go do sprzętowych pinów SPI płytki Arduino.
Jak widać, wyświetlacz ma wiele pinów do podłączenia, ale nie martw się, nie musimy łączyć wszystkich tych pinów, tylko 9 z nich i tylko 4 do cyfrowych pinów płytki Arduino Uno.
Pierwszy pin czyli GND idzie do Arduino GND. Drugi pin, którym jest Vcc, trafia do wyjścia Arduino 5V. Pin RS przechodzi do pinu cyfrowego 10. Pin R/W idzie do pinu cyfrowego 11. Pin E idzie do pinu cyfrowego 13. Pin PSB idzie do GND, pin RST idzie do pinu cyfrowego 8, BLA idzie do wyjścia 3.3V Arduino a pin BLK przechodzi do GND. To wszystko nasz wyświetlacz jest gotowy do użycia!
Możemy ułatwić sobie życie, jeśli połączymy razem wszystkie piny GND wyświetlacza.
Krok 2: Biblioteka dla wyświetlacza
Zobaczmy teraz oprogramowanie, którego potrzebujemy do obsługi tego wyświetlacza.
Do sterowania tym wyświetlaczem użyję biblioteki u8g. Przede wszystkim zainstalujmy bibliotekę. Otwieramy Arduino IDE i z menu wybieramy Sketch → Include Library → Manage Libraries i szukamy biblioteki U8G2. Wybieramy i wciskamy install! To wszystko, nasza biblioteka jest gotowa do użycia.
Przejdźmy teraz do Plik → Przykłady i z przykładów dostarczonych z biblioteką uruchommy przykład GraphicsText. Musimy tylko dokonać jednej zmiany w szkicu przed przesłaniem go na tablicę. Ponieważ biblioteka U8G obsługuje wiele wyświetlaczy, musimy wybrać odpowiedni konstruktor dla naszego wyświetlacza. Wyszukujemy więc kod „ST7920” i spośród dostępnych konstruktorów wybieramy HW_SPI. Odkomentowujemy tę linię w ten sposób i jesteśmy gotowi do wgrania szkicu do Arduino. Po kilku sekundach szkic jest gotowy do pracy.
Jeśli nic nie widzisz na wyświetlaczu, musisz wyregulować kontrast wyświetlacza za pomocą tego małego potencjometru, który znajduje się z tyłu wyświetlacza
Teraz obejrzyjmy szkic demonstracyjny przez kilka sekund. Jak widać, ten przykładowy szkic demonstruje możliwości biblioteki i wyświetlacza. Dzięki temu wyświetlaczowi możemy uzyskać fajne animacje, jest on całkiem zdolny. Dlatego jest używany w tak wielu drukarkach 3D.
Krok 3: Zbudujmy stację pogodową
Zbudujmy teraz coś pożytecznego. Podłączmy czujnik temperatury i wilgotności DHT22 do Arduino. Potrzebujemy tylko zasilania i przewodu sygnałowego, który podłączam do cyfrowego pinu 7. Dla ułatwienia zastosowałem też małą płytkę stykową. Schemat ideowy znajdziesz tutaj.
Jak widać projekt działa poprawnie i wyświetla temperaturę i wilgotność w czasie rzeczywistym.
Rzućmy teraz okiem na kod projektu. Za pomocą zaledwie 60 linijek kodu możemy zbudować taki projekt! Jakie to jest świetne! Wszystko, co musimy zrobić, aby korzystać z wyświetlacza, to użyć tego konstruktora:
U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/10, /* reset=*/8);
inicjalizuj wyświetlacz w funkcji konfiguracji:
u8g2.rozpocznij(); u8g2.enableUTF8Print(); u8g2.setFont(u8g2_font_helvB10_tf); u8g2.setKolorIndeks(1);
a potem wszystko, co robimy, to narysowanie ramek i sznurków dla temperatury i wilgotności:
u8g2.drawFrame (0, 0, 128, 31);
u8g2.drawFrame (0, 33, 128, 31); u8g2.drawStr(15, 13, "Temperatura");
Ostatnie co musimy zrobić, to odczytać temperaturę i wilgotność z czujnika oraz wyświetlić odczyt na ekranie.
void odczyt temperatury()
{ float t = dht.odczytTemperatura(); dtosrf(t, 3, 1, temperatura); }
Jak zawsze w załączeniu kod projektu.
Krok 4: Ostatnie myśli
Na koniec uważam, że ten wyświetlacz jest bardzo przydatny w projektach, w których potrzebujemy dużego wyświetlacza i nie potrzebujemy koloru. Jest niedrogi i łatwy w użyciu. Myślę, że wykorzystam go w kilku przyszłych projektach.
Bardzo chciałbym poznać Twoją opinię na temat tego wyświetlacza. Jak myślisz, jakie aplikacje skorzystają na takim wyświetlaczu? Dziękuję za twoje pomysły i za przeczytanie tej instrukcji. Do zobaczenia następnym razem!