Подключение OLED-дисплея SSD1306 к ESP32
OLED-дисплей 128×64
SSD1306 к ESP32 подключается по I2C: SDA на GPIO21, SCL на GPIO22, питание 3,3 В. Четыре провода, адрес чаще всего 0x3C.
Схема подключения OLED-дисплея SSD1306 к ESP32
| SSD1306 OLED 0,96″ | ESP32 |
|---|---|
| SCL | GPIO22 |
| SDA | GPIO21 |
| VCC | 3V3 |
| GND | GND |
Схема из примера «OLED SSD1306: первый вывод».
Выводы SSD1306 OLED 0,96″
| Вывод | Назначение |
|---|---|
| SCL | тактовая линия I2C |
| SDA | линия данных I2C |
| VCC | питание |
| GND | общий провод |
Код для ESP32
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, -1);
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("дисплей не найден");
return;
}
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("PinPort");
display.setTextSize(1);
display.println("SSD1306 128x64");
display.display(); // без этого экран останется пустым
}
void loop() {
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- Буфер экрана 128×64 занимает 1 КБ ОЗУ, для ESP32 это пустяк, и экран можно перерисовывать целиком.
- Если дисплей не включается, проверьте адрес:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); у некоторых модулей он 0x3D.
Частые ошибки при подключении к ESP32
- Забыть
display.display()после рисования: буфер заполнен, но на экране ничего не появляется. - Перепутать SDA и SCL: экран остаётся чёрным, а
display.begin()возвращает false. - Нарисовали, но на экране пусто — забыт
display.display(): всё осталось в буфере. - Размер в конструкторе 128×32 для экрана 128×64 — изображение растянуто через строку.
- Статичная картинка сутками — OLED выгорает. Для часов гасите экран или сдвигайте изображение.
Ещё по теме
Другие детали для ESP32
HC-SR04DHT22 (AM2302)BME280DS3231LCD 1602 с I2CMAX7219TM1637MPU6050 (GY-521)Модуль релеWS2812B (NeoPixel)KY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21DSN65HVD230