Search Code

ESP32 Tutorijal 11/55 - Korištenje LCD1602 LCD2004 sa ESP32 -SunFounder's ESP32 IoT Learning kit

ESP32 Tutorijal 11/55 - Korištenje LCD1602 LCD2004 sa ESP32 -SunFounder's ESP32 IoT Learning kit

U ovom tutorijalu ćemo istražiti kako koristiti LCD1602 i LCD2004 sa ESP32 mikrokontrolerom. Ovi LCD ekrani nam omogućavaju da prikažemo tekst i druge informacije efikasno, poboljšavajući naše projekte vizuelnim povratnim informacijama. Također ćemo pokriti kako podesiti kontrast kako bismo osigurali čitljivost.

ESP32, dio SunFounder ESP32 IoT Learning kita, ima ugrađene Wi-Fi i Bluetooth mogućnosti, što ga čini moćnim alatom za razne IoT aplikacije. Povezivanjem LCD-a na ESP32, lako možemo prikazati poruke ili podatke iz našeg koda, čineći naše projekte interaktivnijim i korisnički prijateljskijim (u videu na 00:30).

Objašnjenje hardvera

Glavne komponente koje ćemo koristiti uključuju ESP32 mikrokontroler i LCD1602 ili LCD2004 modul ekrana. ESP32 će služiti kao mozak našeg projekta, obrađujući ulaze i kontrolišući izlaze, uključujući LCD ekran.

LCD modul komunicira putem I2C-a, što pojednostavljuje ožičenje koristeći samo dva podatkovna pina (SDA i SCL) za komunikaciju, zajedno s napajanjem i uzemljenjem. Ova postavka značajno smanjuje složenost povezivanja više pinova, omogućavajući čišći i upravljiviji krug.

Detalji iz tehničke dokumentacije

Proizvođač SunFounder
Broj dijela LCD1602
Logički/IO napon 5 V
Napon napajanja 5 V
Veličina ekrana 16 x 2 karaktera
Pozadinsko osvjetljenje Da
Interfejs I2C
Dimenzije 80 x 36 mm
Napomene / varijante Često se koristi s I2C adresom 0x27

 

  • Osigurajte odgovarajući napon napajanja (5 V) kako biste spriječili oštećenje.
  • Koristite kratke žice kako biste minimizirali smetnje na I2C linijama.
  • Podesite potenciometar za optimalnu vidljivost kontrasta.
  • Provjerite I2C adresu ako se ekran ne inicijalizira (uobičajene adrese: 0x27, 0x3F).
  • Očistite ekran prije ažuriranja poruka kako biste izbjegli preklapanje.

Upute za ožičenje

ESP32-11_LCD-shema-ožičenja
ESP32-11_LCD-wiring

Da biste povezali LCD1602 na ESP32, prvo spojite uzemljenje (ground) pin LCD-a na uzemljenje pin na ESP32. Zatim spojite VCC pin LCD-a na 5V izlaz ESP32. Za I2C komunikaciju, spojite SDA pin LCD-a na pin 21 na ESP32, a SCL pin LCD-a spojite na pin 22 na ESP32. Provjerite da su veze sigurne kako biste izbjegli probleme s komunikacijom.

Važno je napomenuti da dok ESP32 radi na 3.3V logičkim nivoima, LCD1602 zahtijeva 5V za ispravan rad. Stoga, osigurajte da koristite ispravan napon napajanja kako biste izbjegli oštećenje LCD-a. Ako koristite drugu veličinu LCD-a, prilagodite ožičenje u skladu s I2C adresom i specifikacijama.

Primjeri koda i objašnjenje

U kodu, počinjemo uključivanjem potrebnih biblioteka za I2C komunikaciju i LCD. Kreiramo instancu LCD-a koristeći I2C adresu 0x27 i specificiramo da ima 16 kolona i 2 reda.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // postavi LCD adresu na 0x27 za prikaz od 16 karaktera i 2 linije

Ova postavka nam omogućava da lako kontrolišemo LCD. U setup() funkciji, inicijaliziramo LCD i uključujemo pozadinsko osvjetljenje, nakon čega ispisujemo poruku dobrodošlice.

void setup()
{
  lcd.init(); // inicijaliziraj LCD
  lcd.backlight(); // Uključuje pozadinsko osvjetljenje LCD-a.
  lcd.print("Hello, world!");   // Ispiši poruku na LCD.
  delay(3000);
}

U loop() funkciji, kontinuirano ažuriramo ekran čišćenjem, postavljanjem pozicije kursora i ispisivanjem trenutne vrijednosti brojača. Ovo demonstrira kako LCD može dinamički prikazivati promjenjive informacije.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Postavlja poziciju kursora na prvi red i prvu kolonu (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Ispisuje trenutnu vrijednost varijable count.
  delay(1000);
  count++; // Povećava brojač za 1. 
}

Kompletan kod će se učitati ispod članka, gdje možete vidjeti potpunu implementaciju i sve dodatne funkcionalnosti dodane za vaš projekat.

Demonstracija / Šta očekivati

Kada je sve povezano i kod je uploadan, LCD bi trebao prikazati "Hello, world!" 3 sekunde prije nego što započne brojač koji se povećava svake sekunde. Možete podesiti kontrast pomoću potenciometra kako biste osigurali da je tekst lako čitljiv (u videu na 08:45).

Ako naiđete na bilo kakve probleme, provjerite veze ožičenja i osigurajte da se koristi ispravna I2C adresa. Česta greška je neusklađivanje I2C adrese LCD-a s onom postavljenom u kodu, što može spriječiti ispravno funkcioniranje ekrana.

Vremenske oznake videa

  • 00:00 Početak
  • 1:47 Uvod u LCD
  • 3:26 Stranica dokumentacije
  • 5:06 Kako povezati LCD s ESP32
  • 9:07 Odabir ESP32 ploče i COMP porta u Arduinu
  • 8:51 Instalacija LCD biblioteke
  • 10:06 Pronalaženje I2C adrese za LCD
  • 14:00 Objašnjenje Arduino koda
  • 17:50 Demonstracija
  • 20:54 Korištenje LCD2004 s ESP32
  • 22:58 Zeleni LCD1602 je bolji od plavog

Images

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

Resources & references

Files📁

No files available.