Пребарување код

ESP32 Упатство 11/55 - Користење на LCD1602 LCD2004 со ESP32 -SunFounder's ESP32 IoT Learning kit

ESP32 Упатство 11/55 - Користење на LCD1602 LCD2004 со ESP32 -SunFounder's ESP32 IoT Learning kit

Во ова упатство, ќе истражиме како да ги користиме LCD1602 и LCD2004 со микроконтролерот ESP32. Овие LCD екрани ни овозможуваат да прикажуваме текст и други информации ефективно, подобрувајќи ги нашите проекти со визуелни повратни информации. Исто така, ќе покриеме како да го прилагодиме контрастот за да обезбедиме читливост.

ESP32, дел од SunFounder ESP32 IoT Learning комплетот, има вградени Wi-Fi и Bluetooth можности, што го прави моќна алатка за различни IoT апликации. Со поврзување на LCD-от со ESP32, лесно можеме да прикажуваме пораки или податоци од нашиот код, правејќи ги нашите проекти поинтерактивни и попријатни за корисниците (во видео на 00:30).

Објаснување на хардверот

Главните компоненти што ќе ги користиме вклучуваат микроконтролерот ESP32 и LCD1602 или LCD2004 модулот за приказ. ESP32 ќе служи како мозок на нашиот проект, обработувајќи влезови и контролирајќи излези, вклучувајќи го и LCD екранот.

LCD модулот комуницира преку I2C, што го поедноставува поврзувањето со користење само на два пина за податоци (SDA и SCL) за комуникација, заедно со приклучоците за напојување и заземјување. Оваа поставка значително ја намалува сложеноста на поврзување на повеќе пинови, овозможувајќи почиста и поуправлива кола.

Детали од техничката документација

Производител SunFounder
Број на дел LCD1602
Логички/IO напон 5 V
Напон на напојување 5 V
Големина на екранот 16 x 2 карактери
Позадинско осветлување Да
Интерфејс I2C
Димензии 80 x 36 mm
Белешки / варијанти Најчесто се користи со I2C адреса 0x27

 

  • Осигурете соодветно напојување (5 V) за да спречите оштетување.
  • Користете кратки жици за да ја минимизирате интерференцијата на I2C линиите.
  • Прилагодете го потенциометарот за оптимална видливост на контрастот.
  • Проверете ја I2C адресата ако екранот не се иницијализира (вообичаени адреси: 0x27, 0x3F).
  • Исчистете го екранот пред ажурирање на пораките за да избегнете преклопување.

Инструкции за поврзување

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

За да го поврзете LCD1602 со ESP32, прво поврзете го пинот за заземјување на LCD-от со пинот за заземјување на ESP32. Потоа, поврзете го VCC пинот на LCD-от со 5V излезот на ESP32. За I2C комуникација, поврзете го SDA пинот на LCD-от со пин 21 на ESP32, и поврзете го SCL пинот на LCD-от со пин 22 на ESP32. Осигурете се дека врските се сигурни за да избегнете какви било комуникациски проблеми.

Важно е да се напомене дека додека ESP32 работи на 3.3V логички нивоа, LCD1602 бара 5V за правилно функционирање. Затоа, осигурете се дека користите правилен напон за напојување за да избегнете оштетување на LCD-от. Ако користите различна големина на LCD, прилагодете го поврзувањето соодветно врз основа на I2C адресата и спецификациите.

Примери на код и објаснување

Во кодот, започнуваме со вклучување на потребните библиотеки за I2C комуникација и LCD-от. Создаваме инстанца на LCD-от користејќи ја I2C адресата 0x27 и специфицираме дека има 16 колони и 2 реда.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // поставете ја LCD адресата на 0x27 за приказ од 16 карактери и 2 линии

Оваа поставка ни овозможува лесно да го контролираме LCD-от. Во функцијата setup(), ја иницијализираме LCD-от и го вклучуваме позадинското осветлување, проследено со печатење на порака за добредојде.

void setup()
{
  lcd.init(); // иницијализирајте го LCD-от 
  lcd.backlight(); // Го вклучува позадинското осветлување на LCD-от.
  lcd.print("Hello, world!");   // Печати порака на LCD-от.
  delay(3000);
}

Во функцијата loop(), континуирано го ажурираме екранот со чистење, поставување на позицијата на курсорот и печатење на моменталната вредност на бројачот. Ова демонстрира како LCD-от може динамички да прикажува променливи информации.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Ја поставува позицијата на курсорот на првиот ред и првата колона (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Ја печати моменталната вредност на променливата count.
  delay(1000);
  count++; // Го зголемува бројачот за 1. 
}

Целосниот код ќе се вчита под статијата, каде што можете да ја видите целосната имплементација и сите дополнителни функционалности додадени за вашиот проект.

Демонстрација / Што да очекувате

Откако сè ќе биде поврзано и кодот ќе биде поставен, LCD-от треба да прикаже "Hello, world!" 3 секунди пред да започне бројач што се зголемува секоја секунда. Можете да го прилагодите контрастот користејќи го потенциометарот за да обезбедите текстот лесно да се чита (во видео на 08:45).

Ако наидете на какви било проблеми, проверете ги жичените врски и осигурете се дека се користи точната I2C адреса. Вообичаена грешка е неусогласување на I2C адресата на LCD-от со онаа поставена во кодот, што може да го спречи правилното функционирање на екранот.

Временски ознаки на видеото

  • 00:00 Почеток
  • 1:47 Вовед во LCD
  • 3:26 Страница со документација
  • 5:06 Како да го поврзете LCD со ESP32
  • 9:07 Избор на ESP32 плоча и COMP порта на Arduino
  • 8:51 Инсталирање на LCD библиотека
  • 10:06 Наоѓање на I2C адреса за LCD
  • 14:00 Објаснување на Arduino кодот
  • 17:50 Демонстрација
  • 20:54 Користење на LCD2004 со ESP32
  • 22:58 Зелениот LCD1602 е подобар од синиот

Слики

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
Јазик: 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. 
}

Ресурси и референци

Датотеки📁

Нема достапни датотеки.