Search Code

Samouczek ESP32 11/55 - Używanie LCD1602 LCD2004 z ESP32 -Zestaw do nauki IoT ESP32 od SunFounder

Samouczek ESP32 11/55 - Używanie LCD1602 LCD2004 z ESP32 -Zestaw do nauki IoT ESP32 od SunFounder

W tym samouczku dowiemy się, jak używać wyświetlaczy LCD1602 i LCD2004 z mikrokontrolerem ESP32. Te ekrany LCD pozwalają nam skutecznie wyświetlać tekst i inne informacje, wzbogacając nasze projekty o wizualne informacje zwrotne. Omówimy również, jak wyregulować kontrast, aby zapewnić czytelność.

ESP32, będący częścią zestawu SunFounder ESP32 IoT Learning kit, ma wbudowaną łączność Wi-Fi i Bluetooth, co czyni go potężnym narzędziem do różnych zastosowań IoT. Podłączając wyświetlacz LCD do ESP32, możemy łatwo wyświetlać komunikaty lub dane wyjściowe z naszego kodu, czyniąc nasze projekty bardziej interaktywnymi i przyjaznymi dla użytkownika (na wideo w 00:30).

Omówienie sprzętu

Główne komponenty, których użyjemy, to mikrokontroler ESP32 oraz moduł wyświetlacza LCD1602 lub LCD2004. ESP32 będzie służyć jako mózg naszego projektu, przetwarzając dane wejściowe i sterując wyjściami, w tym wyświetlaczem LCD.

Moduł LCD komunikuje się przez I2C, co upraszcza okablowanie, ponieważ do komunikacji używa tylko dwóch pinów danych (SDA i SCL) oraz połączeń zasilania i masy. Taka konfiguracja znacznie zmniejsza złożoność podłączania wielu pinów, umożliwiając czystszy i łatwiejszy w zarządzaniu obwód.

Szczegóły z karty katalogowej

Producent SunFounder
Numer części LCD1602
Napięcie logiczne/IO 5 V
Napięcie zasilania 5 V
Rozmiar wyświetlacza 16 x 2 znaki
Podświetlenie Tak
Interfejs I2C
Wymiary 80 x 36 mm
Uwagi / warianty Powszechnie używany z adresem I2C 0x27

 

  • Zapewnij odpowiednie napięcie zasilania (5 V), aby zapobiec uszkodzeniom.
  • Używaj krótkich przewodów, aby zminimalizować zakłócenia na liniach I2C.
  • Wyreguluj potencjometr, aby uzyskać optymalną widoczność kontrastu.
  • Sprawdź adres I2C, jeśli wyświetlacz nie inicjalizuje się (typowe adresy: 0x27, 0x3F).
  • Wyczyść wyświetlacz przed aktualizacją komunikatów, aby uniknąć nakładania się.

Instrukcje okablowania

ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring

Aby podłączyć LCD1602 do ESP32, najpierw podłącz pin masy wyświetlacza LCD do pinu masy na ESP32. Następnie podłącz pin VCC wyświetlacza LCD do wyjścia 5V na ESP32. Do komunikacji I2C podłącz pin SDA wyświetlacza LCD do pinu 21 na ESP32, a pin SCL wyświetlacza LCD do pinu 22 na ESP32. Upewnij się, że połączenia są pewne, aby uniknąć problemów z komunikacją.

Ważne jest, aby zauważyć, że podczas gdy ESP32 działa na poziomach logicznych 3,3 V, LCD1602 wymaga 5 V do prawidłowego działania. Dlatego upewnij się, że używasz odpowiedniego napięcia zasilania, aby uniknąć uszkodzenia wyświetlacza LCD. Jeśli używasz innego rozmiaru wyświetlacza LCD, dostosuj okablowanie odpowiednio na podstawie adresu I2C i specyfikacji.

Przykłady kodu i omówienie

W kodzie zaczynamy od dołączenia niezbędnych bibliotek do komunikacji I2C i wyświetlacza LCD. Tworzymy instancję wyświetlacza LCD przy użyciu adresu I2C 0x27 i określamy, że ma on 16 kolumn i 2 wiersze.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // ustaw adres LCD na 0x27 dla wyświetlacza 16 znaków i 2 linii

Ta konfiguracja pozwala nam łatwo sterować wyświetlaczem LCD. W funkcji setup() inicjalizujemy wyświetlacz LCD i włączamy podświetlenie, a następnie wyświetlamy komunikat powitalny.

void setup()
{
  lcd.init(); // inicjalizacja wyświetlacza LCD
  lcd.backlight(); // Włącza podświetlenie LCD.
  lcd.print("Hello, world!");   // Wyświetla komunikat na LCD.
  delay(3000);
}

W funkcji loop() ciągle aktualizujemy wyświetlacz, czyszcząc go, ustawiając pozycję kursora i wyświetlając bieżącą wartość licznika. To pokazuje, jak wyświetlacz LCD może dynamicznie pokazywać zmieniające się informacje.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Ustawia pozycję kursora na pierwszy wiersz i pierwszą kolumnę (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Wyświetla bieżącą wartość zmiennej count.
  delay(1000);
  count++; // Zwiększa licznik o 1. 
}

Pełny kod zostanie załadowany poniżej artykułu, gdzie można zobaczyć kompletną implementację oraz wszelkie dodatkowe funkcje dodane dla Twojego projektu.

Demonstracja / Czego się spodziewać

Po podłączeniu wszystkiego i wgraniu kodu wyświetlacz LCD powinien pokazywać "Hello, world!" przez 3 sekundy, zanim uruchomi licznik, który zwiększa się co sekundę. Możesz wyregulować kontrast za pomocą potencjometru, aby zapewnić łatwą czytelność tekstu (na wideo w 08:45).

Jeśli napotkasz jakiekolwiek problemy, sprawdź połączenia przewodów i upewnij się, że używany jest prawidłowy adres I2C. Częstym błędem jest niedopasowanie adresu I2C wyświetlacza LCD do tego ustawionego w kodzie, co może uniemożliwić prawidłowe działanie wyświetlacza.

Znaczniki czasu wideo

  • 00:00 Start
  • 1:47 Wprowadzenie do LCD
  • 3:26 Strona dokumentacji
  • 5:06 Jak podłączyć LCD z ESP32
  • 9:07 Wybór płytki ESP32 i portu COMP w Arduino
  • 8:51 Instalacja biblioteki LCD
  • 10:06 Znajdowanie adresu I2C dla LCD
  • 14:00 Wyjaśnienie kodu Arduino
  • 17:50 Demonstracja
  • 20:54 Użycie LCD2004 z ESP32
  • 22:58 Zielony LCD1602 jest lepszy niż niebieski

Obrazy

ESP32_11-5-l2C.MOV_snapshot_00.02.763
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
Język: C++
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

//SDA->21,SCL->22 
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

int count = 0;

void setup()
{
  lcd.init();// initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  lcd.print("Hello, world!");   // Print a message to the LCD.
  delay(3000);
}

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Sets the cursor position to the first row and first column (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Prints the current value of the count variable.
  delay(1000);
  count++; // Increments the counter by 1. 
}

Zasoby i odniesienia

Pliki📁

Brak dostępnych plików.