Подключение LCD 1602 по I2C к ESP32
Символьный дисплей 16×2
LCD 1602 с модулем I2C подключается к ESP32 четырьмя проводами: питание, земля, SDA (GPIO21) и SCL (GPIO22). Главная особенность — питание: экрану нужно 5 В.
Схема подключения LCD 1602 по I2C к ESP32
| LCD 1602 с I2C | ESP32 |
|---|---|
| SCL | GPIO22 |
| SDA | GPIO21 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «LCD 16x2: первый текст».
⚡ В примере «LCD 1602 с I2C» питается от 3V3 — в симуляторе так проще, и модель это допускает. Настоящий модуль рассчитан на 5 В: подключайте VCC к VIN (5 В от USB) или к отдельному источнику 5 В с общей землёй.
Выводы LCD 1602 с I2C
| Вывод | Назначение |
|---|---|
| SCL | тактовая линия I2C |
| SDA | линия данных I2C |
| VCC | питание 5 В |
| GND | общий провод |
Код для ESP32
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("PinPort");
lcd.setCursor(0, 1);
lcd.print("Hello, world!");
}
void loop() {
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- Экран питается от 5 В (VIN), а шина I2C ESP32 работает на 3,3 В. Большинство модулей понимают такой уровень, но корректнее поставить преобразователь уровней.
- Адрес переходника PCF8574 — 0x27, у PCF8574A — 0x3F.
В железе
Дисплей рассчитан на 5 В: от 3,3 В символы едва видны. С ESP32 питание берут с вывода VIN (5 В от USB), а линии I2C обычно работают и так, но надёжнее — через преобразователь уровней.
Частые ошибки при подключении к ESP32
- Питать экран от 3V3: символы бледные или не видны, контрастности подстроечного резистора не хватает.
- Взять не тот адрес (0x27 вместо 0x3F): экран включается, подсветка горит, но текста нет.
- Подсветка горит, символов нет — не выставлен контраст: покрутите синий подстроечный резистор на переходнике.
- Пустой экран без подсветки — неверный адрес. Проверьте сканером I2C оба варианта: 0x27 и 0x3F.
- Кириллица «кракозябрами»: в знакогенераторе большинства дисплеев русских букв нет. Нужен дисплей с кириллицей или свои символы.
lcd.clear()в каждом проходеloop— экран мерцает. Перезаписывайте только изменившиеся символы.
Ещё по теме
Другие детали для ESP32
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″MAX7219TM1637MPU6050 (GY-521)Модуль релеWS2812B (NeoPixel)KY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21DSN65HVD230