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або перевірте адресy сканером. -
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 згідно вашої платформи. Не підключайте модуль до «випадкових» ліній, якщо не впевнені в напрузі.
-
Обережний монтаж Дисплей крихкий: не тисніть на скло, фіксуйте модуль за краї плати.
-
Уникайте статичної картинки надовго Для постійної роботи передбачайте гасіння/перемальовку, щоб зменшити ризик вигорання.