Підключення LCD 1602 до ESP32 майже не відрізняється від підключення до Arduino.
ESP32 має два інтерфейси I2C, обидва можуть бути як master так і slave. I2C шина дозволяє підключити до 127 пристроїв на одну лінію (адреса 0x00 зарезервована стандартами I2C). Заумочанням піни в фреймворкові Arduino для мікроконтролера ESP32 GPIO 22 (SCL) та GPIO 21 (SDA).
LCD1602 рідкокристалічний дисплей (Liquid Crystal Display) символьний дисплей на 16 символів в два рядки. Кожен символ складається з матриці 5х8. Побудований на чіпсеті HD44780, або сумісного з ним. Дозволяє відображати різноманітні меню для керування, дані з датчиків.
ESP32 живиться від 3.3 V, для дисплея потрібно 5 V. Тому живити дисплей потрібно від окремого джерела 5 V, або використовувати модулі LuaNode32, Lolin32 та їм подібні.
Піни для підключення LCD 1602
ESP32 | LCD1602 |
---|---|
5 V | VCC |
GND | GND |
SCL default (GPIO 22) | SCL |
SDA default (GPIO 21) | SDA |
Програмний код для ESP32
#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
Wire.begin(); // Заумочанням викорстивуються GPIO_22 (SCL) та GPIO_21 (SDA).
// Wire.begin(SDA, SCL); // Довіліні GPIO.
lcd.init();
lcd.backlight();
lcd.setCursor(1, 0);
lcd.print("LCD1602");
lcd.setCursor(4, 1);
lcd.print("Qazf.com.ua");
delay(2000);
lcd.clear();
}
void loop()
{
static int count = 0;
lcd.setCursor(0, 1);
lcd.print(count);
count++;
delay(1000);
}
Для роботи з символьним дисплейом, ми використаєм бібліотеку LiquidCrystal I2C, яка заумовчанням входить у Framework Arduino. Для того щоб додати її до вашого проекту, в кінець файлу platformio.ini додайте наступний рядок.
lib_deps = marcoschwartz/LiquidCrystal_I2C@^1.1.
I2C адреса дисплею може бути не 0х27, для пошуку підключених пристроїв скористайтесь статтею Адреси пристоїв на шині I2C та замініть в коді вище вашою якщо вона відрізняється.