V tomto návode si ukážeme, ako používať LCD1602 a LCD2004 s mikrokontrolérom ESP32. Tieto LCD obrazovky nám umožňujú efektívne zobrazovať text a ďalšie informácie, čím vylepšujú naše projekty vizuálnou spätnou väzbou. Tiež si ukážeme, ako nastaviť kontrast, aby bola čitateľnosť zabezpečená.
ESP32, súčasť SunFounder ESP32 IoT Learning kitu, má vstavané Wi-Fi a Bluetooth funkcie, čo z neho robí výkonný nástroj pre rôzne IoT aplikácie. Pripojením LCD k ESP32 môžeme jednoducho zobrazovať správy alebo dátové výstupy z nášho kódu, čím sú naše projekty interaktívnejšie a užívateľsky prívetivejšie (vo videu o 00:30).
Vysvetlenie hardvéru
Hlavné komponenty, ktoré použijeme, zahŕňajú mikrokontrolér ESP32 a LCD1602 alebo LCD2004 zobrazovací modul. ESP32 bude slúžiť ako mozog nášho projektu, spracúvajúc vstupy a riadiac výstupy, vrátane LCD displeja.
LCD modul komunikuje cez I2C, čo zjednodušuje zapojenie použitím iba dvoch dátových pinov (SDA a SCL) na komunikáciu, spolu s napájacími a uzemňovacími pripojeniami. Toto nastavenie výrazne znižuje zložitosť pripájania viacerých pinov, čo umožňuje čistejší a prehľadnejší obvod.
Podrobnosti z datasheetu
Výrobca
SunFounder
Číslo dielu
LCD1602
Logické/IO napätie
5 V
Napájacie napätie
5 V
Veľkosť displeja
16 x 2 znakov
Podsvietenie
Áno
Rozhranie
I2C
Rozmery
80 x 36 mm
Poznámky / varianty
Bežne používané s I2C adresou 0x27
Zabezpečte správne napájacie napätie (5 V), aby nedošlo k poškodeniu.
Používajte krátke vodiče na minimalizáciu rušenia na I2C linkách.
Nastavte potenciometer pre optimálnu viditeľnosť kontrastu.
Skontrolujte I2C adresu, ak sa displej neinicializuje (bežné adresy: 0x27, 0x3F).
Vyčistite displej pred aktualizáciou správ, aby nedošlo k prekrývaniu.
Pokyny na zapojenie
ESP32-11_LCD-schéma-zapojenia
ESP32-11_LCD-wiring
Na zapojenie LCD1602 k ESP32 najprv pripojte uzemňovací pin LCD k uzemňovaciemu pinu na ESP32. Potom pripojte VCC pin LCD k 5V výstupu ESP32. Pre I2C komunikáciu pripojte SDA pin LCD k pinu 21 na ESP32 a SCL pin LCD k pinu 22 na ESP32. Uistite sa, že sú pripojenia pevné, aby sa predišlo problémom s komunikáciou.
Je dôležité poznamenať, že zatiaľ čo ESP32 pracuje s logickými úrovňami 3,3V, LCD1602 vyžaduje 5V pre správnu činnosť. Preto sa uistite, že používate správne napájacie napätie, aby nedošlo k poškodeniu LCD. Ak používate inú veľkosť LCD, upravte zapojenie podľa I2C adresy a špecifikácií.
Príklady kódu a vysvetlenie
V kóde začneme zahrnutím potrebných knižníc pre I2C komunikáciu a LCD. Vytvoríme inštanciu LCD pomocou I2C adresy 0x27 a špecifikujeme, že má 16 stĺpcov a 2 riadky.
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); // nastaví adresu LCD na 0x27 pre 16 znakov a 2 riadkový displej
Toto nastavenie nám umožňuje jednoducho ovládať LCD. Vo funkcii setup() inicializujeme LCD a zapneme podsvietenie, potom vytlačíme uvítaciu správu.
Vo funkcii loop() nepretržite aktualizujeme displej vyčistením, nastavením pozície kurzora a vytlačením aktuálnej hodnoty počítadla. Toto demonštruje, ako môže LCD dynamicky zobrazovať meniace sa informácie.
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // Nastaví pozíciu kurzora na prvý riadok a prvý stĺpec (0, 0).
lcd.print("COUNT: ");
lcd.print(count); // Vytlačí aktuálnu hodnotu premennej count.
delay(1000);
count++; // Zvýši počítadlo o 1.
}
Plný kód sa načíta nižšie pod článkom, kde môžete vidieť kompletnú implementáciu a prípadné ďalšie funkcie pridané pre váš projekt.
Demonštrácia / Čo očakávať
Keď je všetko pripojené a kód nahraný, LCD by mal zobraziť "Hello, world!" na 3 sekundy pred spustením počítadla, ktoré sa zvyšuje každú sekundu. Kontrast môžete nastaviť pomocou potenciometra, aby bol text ľahko čitateľný (vo videu o 08:45).
Ak narazíte na problémy, skontrolujte pripojenia a uistite sa, že používate správnu I2C adresu. Častou chybou je nesúlad I2C adresy LCD s tým, čo je nastavené v kóde, čo môže zabrániť správnemu fungovaniu displeja.
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
Jazyk: 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.
}
Vyhlásenie: Ako partner Amazon zarábame na kvalifikovaných nákupoch. To znamená, že môžeme dostať malú províziu, ak kliknete na odkaz a uskutočníte nákup bez ďalších nákladov pre vás.