Кодты іздеу

ESP32 оқулығы 11/55 - LCD1602 LCD2004 ESP32-мен қолдану -SunFounder-дің ESP32 IoT оқу жиынтығы

ESP32 оқулығы 11/55 - LCD1602 LCD2004 ESP32-мен қолдану -SunFounder-дің ESP32 IoT оқу жиынтығы

Бұл оқулықта біз ESP32 микроконтроллерімен LCD1602 және LCD2004 дисплейлерін қалай пайдалану керектігін қарастырамыз. Бұл LCD экрандар мәтінді және басқа ақпаратты тиімді көрсетуге мүмкіндік береді, жобаларымызды визуалды кері байланыспен жақсартады. Сондай-ақ оқуға ыңғайлы болу үшін контрастты қалай реттеу керектігін қарастырамыз.

ESP32, SunFounder ESP32 IoT оқу жинағының бөлігі, кірістірілген Wi-Fi және Bluetooth мүмкіндіктеріне ие, бұл оны әртүрлі IoT қолданбалары үшін қуатты құрал етеді. LCD-ді ESP32-ге қосу арқылы біз кодтан хабарламаларды немесе деректер шығыстарын оңай көрсете аламыз, бұл жобаларымызды интерактивті және пайдаланушыға ыңғайлы етеді (бейнеде 00:30).

Аппараттық құрал түсіндірмесі

Біз қолданатын негізгі компоненттерге ESP32 микроконтроллері және LCD1602 немесе LCD2004 дисплей модулі кіреді. ESP32 біздің жобамыздың миы ретінде қызмет етеді, кірістерді өңдейді және шығыстарды, соның ішінде LCD дисплейін басқарады.

LCD модулі I2C арқылы байланысады, бұл тек екі деректер түйреуішін (SDA және SCL) байланыс үшін, қуат және жерге қосу қосылымдарымен бірге пайдалану арқылы сымдарды жеңілдетеді. Бұл орнату көптеген түйреуіштерді қосудың күрделілігін айтарлықтай төмендетеді, таза және басқаруға оңай тізбек жасауға мүмкіндік береді.

Деректер парағының мәліметтері

Өндіруші SunFounder
Бөлшек нөмірі LCD1602
Логика/IO кернеуі 5 В
Қоректендіру кернеуі 5 В
Дисплей өлшемі 16 x 2 таңба
Артқы жарық Иә
Интерфейс I2C
Өлшемдері 80 x 36 мм
Ескертулер / нұсқалар Әдетте I2C мекенжайы 0x27 болып қолданылады

 

  • Зақымдануды болдырмау үшін дұрыс қоректендіру кернеуін (5 В) қамтамасыз етіңіз.
  • I2C желілеріндегі кедергілерді азайту үшін қысқа сымдарды пайдаланыңыз.
  • Оңтайлы контраст көрінуі үшін потенциометрді реттеңіз.
  • Дисплей іске қосылмаса, I2C мекенжайын тексеріңіз (жалпы мекенжайлар: 0x27, 0x3F).
  • Қабаттасуды болдырмау үшін хабарламаларды жаңартпас бұрын дисплейді тазалаңыз.

Сымдарды қосу нұсқаулары

ESP32-11_LCD-сымдарды-қосу-схемасы
ESP32-11_LCD-wiring

LCD1602-ді ESP32-ге қосу үшін алдымен LCD-дің жерге қосу түйреуішін ESP32-дегі жерге қосу түйреуішіне қосыңыз. Содан кейін LCD-дің VCC түйреуішін ESP32-нің 5V шығысына қосыңыз. I2C байланысы үшін LCD-дің SDA түйреуішін ESP32-дегі 21 түйреуішке, ал LCD-дің SCL түйреуішін ESP32-дегі 22 түйреуішке қосыңыз. Байланыс ақауларын болдырмау үшін қосылымдардың сенімді екеніне көз жеткізіңіз.

ESP32 3.3V логикалық деңгейлерде жұмыс істесе де, LCD1602 дұрыс жұмыс істеу үшін 5V қажет ететінін ескеру маңызды. Сондықтан LCD-ді зақымдамау үшін дұрыс қоректендіру кернеуін қолданып жатқаныңызға көз жеткізіңіз. Егер сіз басқа LCD өлшемін қолдансаңыз, I2C мекенжайы мен сипаттамаларына сәйкес сымдарды тиісінше реттеңіз.

Код мысалдары және түсіндірме

Кодта біз I2C байланысы және LCD үшін қажетті кітапханаларды қосудан бастаймыз. Біз I2C мекенжайы 0x27 арқылы LCD данасын жасаймыз және оның 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 3 секунд бойы "Hello, world!" көрсетуі керек, содан кейін әр секунд сайын артып отыратын есептегішті бастайды. Мәтіннің оңай оқылуын қамтамасыз ету үшін потенциометр арқылы контрастты реттеуге болады (бейнеде 08:45).

Егер қандай да бір ақаулықтар туындаса, сым қосылымдарын тексеріңіз және дұрыс I2C мекенжайының қолданылып жатқанына көз жеткізіңіз. Жиі кездесетін қате - LCD-дің I2C мекенжайын кодта орнатылғанмен сәйкестендірмеу, бұл дисплейдің дұрыс жұмыс істеуіне кедергі келтіруі мүмкін.

Бейне уақыт белгілері

  • 00:00 Бастау
  • 1:47 LCD-ге кіріспе
  • 3:26 Құжаттама беті
  • 5:06 LCD-ді ESP32-мен қалай қосу керек
  • 9:07 Arduino-да ESP32 тақтасын және COMP портын таңдау
  • 8:51 LCD кітапханасын орнату
  • 10:06 LCD үшін I2C мекенжайын табу
  • 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. 
}

Ресурстар мен сілтемелер

Файлдар📁

Файлдар жоқ.