Для взаимодействия с 128×64 пиксельным монитором на чипе SSD1306 потребуются четыре провода: VCC (3.3V), GND, SCL (A5) и SDA (A4). Библиотека Adafruit_SSD1306 упрощает инициализацию – после установки через менеджер плат добавьте #include
Связь монохромного экрана с микроконтроллером
Установите библиотеку Adafruit_SSD1306 через менеджер библиотек в среде разработки. Добавьте зависимости Adafruit_GFX и Adafruit_BusIO, иначе код не скомпилируется.
Проверьте работу экрана с минимальным скетчем:
#include
#include
#include
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Тест");
display.display();
}
void loop() {}
Если символы не отображаются, проверьте контрастность командой display.ssd1306_command(SSD1306_SETCONTRAST, 0xFF). Для графики используйте drawLine(), drawRect() или drawCircle(), но не забывайте вызывать display() после внесения изменений.
При мерцании увеличьте задержку между обновлениями до 50–100 мс. Для экономии памяти храните часто используемые элементы в PROGMEM.
Выбор подходящего OLED и его распиновка
SSD1306 – оптимальный вариант для большинства проектов. Разрешение 128×64 пикселей, поддержка I2C и SPI, низкое энергопотребление. Модели с диагональю 0.96″ и 1.3″ совместимы с большинством плат.
Если нужен больший экран, рассмотрите SH1106 (128×64, но с другой архитектурой памяти). Для цветных проектов подойдет SSD1331 (96×64, 16-битный цвет), но он дороже и сложнее в настройке.
Перед покупкой проверьте напряжение логики: 5 В или 3.3 В. Большинство модулей имеют встроенный преобразователь, но дешевые аналоги могут сгореть от 5 В.
Распиновка указывается на обратной стороне платы или в даташите. Если контакты не подписаны, ищите маркировку: SDA (данные), SCL (такты) для I2C; DIN (вход), CLK (синхронизация) для SPI.
Установите Adafruit_SSD1306 и Adafruit_GFX через менеджер библиотек в среде разработки. Для I²C укажите размер экрана (128×64 или 128×32) и адрес (обычно 0x3C или 0x3D) в конструкторе:
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
В setup() инициализируйте экран:
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Ошибка инициализации");
while(1);
}
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.setTextSize(1);
display.setCursor(10, 10);
display.println("Текст");
display.display();
Рисование линий и фигур:
display.drawLine(0, 0, 127, 63, SSD1306_WHITE);
display.drawRect(20, 20, 50, 30, SSD1306_WHITE);
display.fillCircle(64, 32, 10, SSD1306_WHITE);
display.display();
Обновляйте содержимое только при изменениях, чтобы избежать мерцания. Для анимации очищайте буфер перед каждым кадром:
display.clearDisplay();
// Рисование нового кадра
display.display();
delay(100);






























































