Caută cod

Tutorial ESP32 11/55 - Utilizarea LCD1602 LCD2004 cu ESP32 - Kitul de învățare IoT ESP32 de la SunFounder

Tutorial ESP32 11/55 - Utilizarea LCD1602 LCD2004 cu ESP32 - Kitul de învățare IoT ESP32 de la SunFounder

În acest tutorial, vom explora cum să folosim LCD1602 și LCD2004 cu microcontrolerul ESP32. Aceste ecrane LCD ne permit să afișăm text și alte informații în mod eficient, îmbunătățind proiectele noastre cu feedback vizual. Vom acoperi, de asemenea, cum să ajustăm contrastul pentru a asigura lizibilitatea.

ESP32, parte din kitul de învățare IoT SunFounder ESP32, are capacități Wi-Fi și Bluetooth integrate, fiind un instrument puternic pentru diverse aplicații IoT. Conectând LCD-ul la ESP32, putem afișa cu ușurință mesaje sau date de ieșire din codul nostru, făcând proiectele noastre mai interactive și mai ușor de utilizat (în video la 00:30).

Hardware Explicat

Componentele principale pe care le vom folosi includ microcontrolerul ESP32 și modulul de afișare LCD1602 sau LCD2004. ESP32 va servi drept creierul proiectului nostru, procesând intrările și controlând ieșirile, inclusiv afișajul LCD.

Modulul LCD comunică prin I2C, ceea ce simplifică cablarea folosind doar două pini de date (SDA și SCL) pentru comunicare, împreună cu conexiunile de alimentare și masă. Această configurare reduce semnificativ complexitatea conectării mai multor pini, permițând un circuit mai curat și mai ușor de gestionat.

Detalii din Fișa Tehnică

Producător SunFounder
Număr de piesă LCD1602
Tensiune logică/IO 5 V
Tensiune de alimentare 5 V
Dimensiune afișaj 16 x 2 caractere
Iluminare de fundal Da
Interfață I2C
Dimensiuni 80 x 36 mm
Note / variante Folosit frecvent cu adresa I2C 0x27

 

  • Asigurați o tensiune de alimentare adecvată (5 V) pentru a preveni deteriorarea.
  • Folosiți fire scurte pentru a minimiza interferențele pe liniile I2C.
  • Reglați potențiometrul pentru o vizibilitate optimă a contrastului.
  • Verificați adresa I2C dacă afișajul nu se inițializează (adrese comune: 0x27, 0x3F).
  • Goliți afișajul înainte de a actualiza mesajele pentru a evita suprapunerea.

Instrucțiuni de Cablare

ESP32-11_LCD-schemă-cablare
ESP32-11_LCD-wiring

Pentru a cabla LCD1602 la ESP32, conectați mai întâi pinul de masă al LCD-ului la pinul de masă de pe ESP32. Apoi, conectați pinul VCC al LCD-ului la ieșirea de 5V a ESP32-ului. Pentru comunicarea I2C, conectați pinul SDA al LCD-ului la pinul 21 de pe ESP32 și conectați pinul SCL al LCD-ului la pinul 22 de pe ESP32. Asigurați-vă că conexiunile sunt sigure pentru a evita problemele de comunicare.

Este important de reținut că, în timp ce ESP32 funcționează la niveluri logice de 3.3V, LCD1602 necesită 5V pentru o funcționare corectă. Prin urmare, asigurați-vă că folosiți sursa de tensiune corectă pentru a evita deteriorarea LCD-ului. Dacă folosiți o altă dimensiune de LCD, ajustați cablarea în consecință, pe baza adresei I2C și a specificațiilor.

Exemple de Cod & Explicații

În cod, începem prin a include bibliotecile necesare pentru comunicarea I2C și pentru LCD. Creăm o instanță a LCD-ului folosind adresa I2C 0x27 și specificăm că are 16 coloane și 2 rânduri.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // setează adresa LCD la 0x27 pentru un afișaj de 16 caractere și 2 linii

Această configurare ne permite să controlăm LCD-ul cu ușurință. În funcția setup(), inițializăm LCD-ul și pornim iluminarea de fundal, urmată de afișarea unui mesaj de bun venit.

void setup()
{
  lcd.init(); // inițializează LCD-ul 
  lcd.backlight(); // Pornește iluminarea de fundal a LCD-ului.
  lcd.print("Hello, world!");   // Afișează un mesaj pe LCD.
  delay(3000);
}

În funcția loop(), actualizăm continuu afișajul prin golirea acestuia, setarea poziției cursorului și afișarea valorii curente a contorului. Aceasta demonstrează cum LCD-ul poate afișa dinamic informații în schimbare.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Setează poziția cursorului la primul rând și prima coloană (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Afișează valoarea curentă a variabilei count.
  delay(1000);
  count++; // Incrementează contorul cu 1. 
}

Codul complet va fi încărcat mai jos în articol, unde puteți vedea implementarea integrală și orice funcționalități suplimentare adăugate pentru proiectul dumneavoastră.

Demonstrație / Ce să Așteptați

Odată ce totul este conectat și codul este încărcat, LCD-ul ar trebui să afișeze "Hello, world!" timp de 3 secunde înainte de a începe un contor care crește în fiecare secundă. Puteți ajusta contrastul folosind potențiometrul pentru a vă asigura că textul este ușor de citit (în video la 08:45).

Dacă întâmpinați probleme, verificați conexiunile de cablare și asigurați-vă că folosiți adresa I2C corectă. O greșeală frecventă este nepotrivirea adresei I2C a LCD-ului cu cea setată în cod, ceea ce poate împiedica funcționarea corectă a afișajului.

Marcaje Temporale Video

  • 00:00 Început
  • 1:47 Introducere în LCD
  • 3:26 Pagina de documentație
  • 5:06 Cum să cablați LCD cu ESP32
  • 9:07 Selectarea plăcii ESP32 și a portului COMP în Arduino
  • 8:51 Instalarea bibliotecii LCD
  • 10:06 Găsirea adresei I2C pentru LCD
  • 14:00 Explicarea codului Arduino
  • 17:50 Demonstrație
  • 20:54 Utilizarea LCD2004 cu ESP32
  • 22:58 LCD1602 verde este mai bun decât cel albastru

Imagini

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
Limba: 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. 
}

Resurse și referințe

Fișiere📁

Nu sunt disponibile fișiere.