Search Code

ESP32 Tutoriaal 11/55 - Gebruik van LCD1602 LCD2004 met ESP32 -SunFounder se ESP32 IoT-leerkit

ESP32 Tutoriaal 11/55 - Gebruik van LCD1602 LCD2004 met ESP32 -SunFounder se ESP32 IoT-leerkit

In hierdie tutoriaal gaan ons ondersoek hoe om die LCD1602 en LCD2004 met die ESP32-mikrobeheerder te gebruik. Hierdie LCD-skerms stel ons in staat om teks en ander inligting effektief te vertoon, wat ons projekte met visuele terugvoer verbeter. Ons sal ook dek hoe om die kontras aan te pas om leesbaarheid te verseker.

Die ESP32, deel van die SunFounder ESP32 IoT-leerkit, het ingeboude Wi-Fi- en Bluetooth-vermoëns, wat dit 'n kragtige hulpmiddel maak vir verskeie IoT-toepassings. Deur die LCD aan die ESP32 te koppel, kan ons maklik boodskappe of data-uitsette van ons kode vertoon, wat ons projekte meer interaktief en gebruikersvriendelik maak (in video by 00:30).

Hardeware Verduidelik

Die hoofkomponente wat ons sal gebruik, sluit die ESP32-mikrobeheerder en die LCD1602- of LCD2004-vertoonmodule in. Die ESP32 sal as die brein van ons projek dien, wat insette verwerk en uitsette beheer, insluitend die LCD-vertoning.

Die LCD-module kommunikeer via I2C, wat bedrading vereenvoudig deur slegs twee datapen (SDA en SCL) vir kommunikasie te gebruik, tesame met krag- en grondverbindings. Hierdie opstelling verminder die kompleksiteit van die koppeling van veelvuldige penne aansienlik, wat 'n skoner en meer hanteerbare stroombaan moontlik maak.

Datablad Besonderhede

Vervaardiger SunFounder
Deelnommer LCD1602
Logika/IO-spanning 5 V
Toevoerspanning 5 V
Vertoningsgrootte 16 x 2 karakters
Agterlig Ja
Koppelvlak I2C
Afmetings 80 x 36 mm
Notas / variante Word algemeen gebruik met I2C-adres 0x27

 

  • Verseker behoorlike spanningtoevoer (5 V) om skade te voorkom.
  • Gebruik kort drade om steuring op I2C-lyne te minimaliseer.
  • Pas die potensiometer aan vir optimale kontras-sigbaarheid.
  • Kontroleer I2C-adres as die vertoning nie initialiseer nie (algemene adresse: 0x27, 0x3F).
  • Maak die vertoning skoon voordat boodskappe opgedateer word om oorvleueling te vermy.

Bedradingsinstruksies

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

Om die LCD1602 aan die ESP32 te bedraad, koppel eers die grondpen van die LCD aan die grondpen op die ESP32. Koppel dan die VCC-pen van die LCD aan die 5V-uitset van die ESP32. Vir die I2C-kommunikasie, koppel die SDA-pen van die LCD aan pen 21 op die ESP32, en koppel die SCL-pen van die LCD aan pen 22 op die ESP32. Maak seker dat die verbindings veilig is om enige kommunikasieprobleme te vermy.

Dit is belangrik om daarop te let dat terwyl die ESP32 op 3.3V-logikavlakke werk, die LCD1602 5V vir behoorlike werking benodig. Maak dus seker dat jy die korrekte spanningtoevoer gebruik om skade aan die LCD te voorkom. As jy 'n ander LCD-grootte gebruik, pas die bedrading dienooreenkomstig aan op grond van die I2C-adres en spesifikasies.

Kode Voorbeelde & Deurloop

In die kode begin ons deur die nodige biblioteke vir I2C-kommunikasie en die LCD in te sluit. Ons skep 'n instansie van die LCD met die I2C-adres 0x27 en spesifiseer dat dit 16 kolomme en 2 rye het.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // stel die LCD-adres na 0x27 vir 'n 16 karakters en 2 lyn vertoning

Hierdie opstelling stel ons in staat om die LCD maklik te beheer. In die setup()-funksie initialiseer ons die LCD en skakel die agterlig aan, gevolg deur die druk van 'n welkomboodskap.

void setup()
{
  lcd.init(); // initialiseer die lcd 
  lcd.backlight(); // Skakel die LCD-agterlig aan.
  lcd.print("Hello, world!");   // Druk 'n boodskap op die LCD.
  delay(3000);
}

In die loop()-funksie werk ons die vertoning voortdurend op deur dit skoon te maak, die wyserposisie te stel, en die huidige telwaarde te druk. Dit demonstreer hoe die LCD dinamies veranderende inligting kan wys.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Stel die wyserposisie na die eerste ry en eerste kolom (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Druk die huidige waarde van die telveranderlike.
  delay(1000);
  count++; // Verhoog die teller met 1. 
}

Die volledige kode sal onder die artikel gelaai word, waar jy die volledige implementering en enige bykomende funksionaliteite wat vir jou projek bygevoeg is, kan sien.

Demonstrasie / Wat om te VerwAg

Sodra alles gekoppel is en die kode opgelaai is, moet die LCD "Hello, world!" vir 3 sekondes vertoon voordat dit 'n teller begin wat elke sekonde toeneem. Jy kan die kontras met die potensiometer aanpas om te verseker dat die teks maklik leesbaar is (in video by 08:45).

As jy enige probleme ondervind, kontroleer die bedradingsverbindings en verseker dat die korrekte I2C-adres gebruik word. 'n Algemene fout is om nie die LCD se I2C-adres te laat ooreenstem met wat in die kode gestel is nie, wat kan verhoed dat die vertoning behoorlik funksioneer.

Video Tydstempels

  • 00:00 Begin
  • 1:47 Inleiding tot LCD
  • 3:26 Dokumentasiebladsy
  • 5:06 Hoe om LCD met ESP32 te bedraad
  • 9:07 Kies ESP32-bord en COMP-poort op Arduino
  • 8:51 Installeer LCD-biblioteek
  • 10:06 Vind I2C-adres vir LCD
  • 14:00 Arduino-kode verduidelik
  • 17:50 Demonstrasie
  • 20:54 Gebruik LCD2004 met ESP32
  • 22:58 Groen LCD1602 is beter as blou

Beelde

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

Hulpbronne en verwysings

Lêers📁

Geen lêers beskikbaar.