I2C: VCC→3.3/5V, GND→GND, SCL→SCL, SDA→SDA.
SPI: добавьте CS, DC, RST + SCK/MOSI.
В Arduino IDE установите Adafruit SSD1306 и Adafruit GFX, откройте пример 128×64 (I2C или SPI) и проверьте адрес I2C (0x3C/0x3D) или соответствие пинов SPI в коде.
Как подключить OLED SSD1306 по I2C (4 пина) и быстро запустить?
Простейший вариант подключения: 4 провода, минимум шансов ошибиться, максимум шансов увидеть демо с первого запуска.
Проверьте маркировку на плате. На разных модулях порядок пинов может отличаться. Перепутанные VCC/GND — кратчайший путь к «OLED был, OLED нет».
Подключение I2C: шпаргалка для популярных плат
- OLED VCC
- → 5V (Arduino Uno/Nano) или 3.3V (ESP32/3.3V-платы)
- OLED GND
- → GND
- OLED SCL
- → SCL (Uno/Nano:
A5; Mega:21; ESP32 часто:GPIO22) - OLED SDA
- → SDA (Uno/Nano:
A4; Mega:20; ESP32 часто:GPIO21)
-
Соберите подключение (4 провода) Подключите
VCC,GND,SCL,SDAсогласно вашей плате. Если на плате есть отдельные пиныSDA/SCL— используйте их. -
Установите библиотеки В Arduino IDE откройте
Скетч → Подключить библиотеку → Управление библиотекамии установитеAdafruit SSD1306. НеобходимаяAdafruit GFXподтянется автоматически. -
Откройте I2C-пример 128×64 Меню:
Файл → Примеры → Adafruit SSD1306 → ssd1306_128x64_i2c(название может немного отличаться в зависимости от версии библиотеки). -
Сверьте I2C-адрес Типичные адреса:
0x3Cили0x3D. Если дисплей не реагирует — измените адрес в коде на альтернативный. -
Загрузите скетч Нажмите
Upload. В случае успеха дисплей покажет демо-графику/текст.
Совет: если I2C-сканер не видит дисплей — проблема не в адресе, а в подключении (SDA/SCL/питание/контакт).
flowchart LR MCU\["Arduino / ESP32"\] -->|"VCC (3.3V/5V)"| VCC\["OLED VCC"\] MCU -->|"GND"| GND\["OLED GND"\] MCU -->|"SCL"| SCL\["OLED SCL"\] MCU -->|"SDA"| SDA\["OLED SDA"\]
Как подключить OLED SSD1306 по SPI (7 пинов) и запустить пример?
SPI-подключение требует больше сигналов, зато позволяет быстрее обновлять изображение (полезно для анимаций и динамической графики).
Проверьте интерфейс модуля. Если у вас модуль на 4 пина, это I2C-вариант — SPI-пример для него не подойдет.
Типичное подключение SPI на Arduino Uno/Nano
- OLED VCC
- → 5V
- OLED GND
- → GND
- OLED SCK / D0
- →
D13(SCK) - OLED MOSI / D1
- →
D11(MOSI) - OLED CS
- →
D10(или любой свободный цифровой) - OLED DC
- →
D9(или любой свободный цифровой) - OLED RST
- →
D8(или к RESET Arduino)
-
Подключите питание и сигнальные линии Соедините
VCC,GND,SCK,MOSI,CS,DC,RSTсогласно схеме. -
Установите библиотеки Установите
Adafruit SSD1306иAdafruit GFXчерез менеджер библиотек Arduino IDE. -
Откройте SPI-пример 128×64 Меню:
Файл → Примеры → Adafruit SSD1306 → ssd1306_128x64_spi(название может немного отличаться). -
Сверьте пины CS/DC/RST в коде Убедитесь, что номера пинов в примере совпадают с вашими подключениями. Если вы использовали другие пины — измените их в скетче.
-
Загрузите скетч Нажмите
Upload. В случае успеха появится демо-графика.
flowchart LR MCU\["Arduino Uno/Nano"\] -->|"5V"| VCC\["OLED VCC"\] MCU -->|"GND"| GND\["OLED GND"\] MCU -->|"D13 (SCK)"| SCK\["OLED SCK / D0"\] MCU -->|"D11 (MOSI)"| MOSI\["OLED MOSI / D1"\] MCU -->|"D10 (CS)"| CS\["OLED CS"\] MCU -->|"D9 (DC)"| DC\["OLED DC"\] MCU -->|"D8 (RST)"| RST\["OLED RST"\]
I2C или SPI: что выбрать для вашего проекта?
Краткое сравнение для практического выбора.
| Критерий | I2C (4 пина) | SPI (7 пинов) |
|---|---|---|
| Количество проводов | Минимум | Больше |
| Скорость обновления | Хорошо для текста/меню | Лучше для анимаций |
| Сложность | Максимально просто | Нужно сверять пины |
| Когда выбирать | Метеостанции, дебаг, меню | Игры, графика, частые обновления |
Почему OLED не работает: быстрый чек-лист ошибок
-
Нет питания или перепутана полярность Проверьте напряжение между
VCCиGND, а также правильность подключения. -
I2C: перепутаны SDA/SCL Если I2C-сканер не находит устройств — начните с этих двух проводов.
-
I2C: неправильный адрес Попробуйте
0x3C↔0x3Dили проверьте адрес сканером. -
SPI: не совпадают CS/DC/RST между подключением и кодом Сверьте номера пинов в примере и ваши провода.
-
Несоответствующий режим (I2C-скетч для SPI-модуля или наоборот) Убедитесь, что выбрали пример под ваш интерфейс.
Совет: если I2C-сканер видит дисплей — подключение почти наверняка правильное. Далее проверяйте адрес в коде и тип примера (128×64).
Частые вопросы
Какую библиотеку лучше использовать: Adafruit или U8g2?
Adafruit SSD1306 — самый быстрый старт. U8g2 — больше шрифтов и тонких настроек, но сложнее и тяжелее по памяти.
Экран черный по I2C — что делать?
Проверьте 1) питание, 2) SDA/SCL, 3) адрес 0x3C/0x3D, 4) запустите I2C-сканер.
Можно ли подключить OLED к ESP32?
Да. Для I2C часто используют GPIO21 (SDA) и GPIO22 (SCL), но пины можно настроить в коде. Питание — 3.3V.
Правила безопасной работы с OLED
-
Питание только в пределах нормы Подавайте 3.3V или 5V согласно вашей платформе. Не подключайте модуль к «случайным» линиям, если не уверены в напряжении.
-
Аккуратный монтаж Дисплей хрупкий: не давите на стекло, фиксируйте модуль за края платы.
-
Избегайте статической картинки надолго Для постоянной работы предусматривайте гашение/перерисовку, чтобы уменьшить риск выгорания.