Как подключить OLED SSD1306 к Arduino
Дисплей 0,96″ на A4 и A5, адрес 0x3C.
Схема подключения
Открыть в конструктореСборка по шагам
4 шага- 4 провода по порядку: земля, питание, шины.Нажмите на провод на схеме или строку таблицы, чтобы открыть его шаг.Стрелки ← → листают шаги.
- Шаг 1: GND дисплея на GND платы
- Шаг 2: VCC дисплея на 5V платы5 В, дисплей берёт до 25 мА, вывод даёт около 400 мА.
- Шаг 3: SCL дисплея на A5 платыАдрес дисплея 0x3C, второй 0x3D.
- Шаг 4: SDA дисплея на A4 платы
- Готово: 4 провода на месте.Сверьте с таблицей соединений ниже.
Соединения
| Шаг | Откуда | Куда | Цвет |
|---|---|---|---|
| 1 | Arduino Nano GND | OLED SSD1306 GND | чёрный |
| 2 | Arduino Nano 5V | OLED SSD1306 VCC | красный |
| 3 | Arduino Nano A5 | OLED SSD1306 SCL | I2C, зелёный |
| 4 | Arduino Nano A4 | OLED SSD1306 SDA | I2C, зелёный |
Детали
Проверка питания и проводов
- Проверка схемы, та же, что в конструкторе, не нашла ошибок: напряжения выводов совпадают, земля общая, шины подключены целиком.
- OLED SSD1306 берёт до 25 мА (обычно около 10) с вывода 5V Arduino Nano, вывод даёт около 400 мА: USB даёт 500 мА, часть берёт сама плата.
Ток всей схемы и сколько она проработает от аккумулятора: расчёт питания. Где что втыкать: схема на макетке.
Пример кода
Arduino IDE, Adafruit SSD1306 2.5, Adafruit GFX 1.11.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
// 0x3D, если на обороте перепаян резистор адреса
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) for (;;);
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(SSD1306_WHITE);
oled.setCursor(0, 0);
oled.println("olerast");
oled.display();
}
void loop() {}
Распиновки деталей
Как подключено
У Arduino Nano I2C на A4 (SDA) и A5 (SCL). Модуль OLED на SSD1306 питается от 3,3-5 В, на плате свой стабилизатор и подтяжки, поэтому его подключают к 5V Nano напрямую. Порядок GND и VCC на гребёнке у разных партий разный: перед подключением прочитайте подписи на своём модуле.
Библиотека Adafruit_SSD1306 держит кадр 128×64 в памяти: 1024 байта из 2048 байт ОЗУ Nano. Если скетч большой и экран не запускается (begin возвращает false), возьмите U8g2 в страничном режиме.
Частые вопросы
- Какой адрес у OLED 0,96?
- 0x3C. Если на обороте перепаян резистор адреса, 0x3D. Надпись 0x78 на плате означает тот же 0x3C в восьмибитной записи.
- Чем отличается подключение к Uno?
- Провода те же: SDA на A4, SCL на A5, у Uno R3 те же линии выведены ещё на пины SDA и SCL у AREF.
- Экран 1,3 дюйма тоже так подключается?
- Провода те же, но на нём чаще стоит SH1106: в коде нужна библиотека для SH1106 (Adafruit_SH110X или U8g2), иначе изображение сдвинуто на 2 столбца.