Как подключить OLED SSD1306 к Arduino

Дисплей 0,96″ на A4 и A5, адрес 0x3C.

Схема подключения

Открыть в конструкторе

Соединения

ШагОткудаКудаЦвет
1Arduino Nano GNDOLED SSD1306 GNDчёрный
2Arduino Nano 5VOLED SSD1306 VCCкрасный
3Arduino Nano A5OLED SSD1306 SCLI2C, зелёный
4Arduino Nano A4OLED SSD1306 SDAI2C, зелёный

Детали

Проверка питания и проводов

  • Проверка схемы, та же, что в конструкторе, не нашла ошибок: напряжения выводов совпадают, земля общая, шины подключены целиком.
  • 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 столбца.

Пригодится ещё