Arduino SSD1106
тел. +7(499)347-04-82
Описание Arduino SSD1106
Отличный выбор! SSD1106 — это популярный драйвер для монохромных OLED-дисплеев с разрешением 128x64 или 128x32 пикселя. Ниже представлено подробное описание.
Описание SSD1106
SSD1106 — это контроллер/драйвер для органических светодиодных (OLED-панелей) с пассивной матрицей (PMOLED), разработанный компанией Solomon Systech. Он управляет каждым пикселем индивидуально, обеспечивая высокую контрастность, глубокий черный цвет (так как пиксели выключены) и низкое энергопотребление.
Ключевая особенность для Arduino: Драйвер имеет встроенный буфер дисплейной памяти (GDDRAM) на 128x64 бит (1 Кбайт), что освобождает микроконтроллер от необходимости постоянно обновлять экран. Вы отправляете данные в буфер, а SSD1106 самостоятельно занимается отрисовкой.
Технические характеристики
- Тип дисплея: Монохромный OLED (PMOLED).
- Типичное разрешение: 128x64 пикселей (также бывает 128x32, 96x16 и другие, но 128x64 — самый распространенный).
- Интерфейс связи:
- I2C (TWI): Наиболее популярный для Arduino. Использует всего 2 сигнальных провода (SDA, SCL) + питание. Адрес по умолчанию: 0x3C (чаще) или 0x3D.
- SPI (4- или 3-проводной): Более высокая скорость обновления. Требует больше пинов (CS, DC, RES, DIN, CLK). В 3-проводном режиме отсутствует отдельный пин для данных команды/данных (DC).
- Напряжение питания:
- Логика (VCC): 3.3В (очень важно! Большинство модулей не tolerant к 5V).
- Дисплейная панель (VDD): обычно 7-12В, генерируется модулем от 3.3В.
- Потребляемый ток: Зависит от количества активных пикселей. В среднем 10-40 мА.
- Угол обзора: Очень широкий (~160°-170°).
- Время отклика: Крайне малое (единицы микросекунд).
- Рабочая температура: Обычно -40°C до +85°C.
- Встроенные функции:
- Генератор напряжений для дисплея.
- Программируемый кадровый режим.
- Контрастность (256 уровней).
- Прокрутка (скроллинг) содержимого экрана.
- Схема смещения сегментов и общего электрода.
Парт-номера (Part Numbers) и маркировка модулей
Сами модули для Arduino обычно продаются не под номером чипа SSD1106, а под общим названием, указывающим разрешение, размер и интерфейс.
Самые распространенные модули:
- 0.96-дюймовый OLED 128x64 (I2C/SPI) — абсолютный хит.
- 1.3-дюймовый OLED 128x64 (I2C/SPI) — встречается реже.
- 0.91-дюймовый OLED 128x32 (I2C) — более узкий и дешевый.
- OLED 96x16 (I2C) — для вывода одной-двух строк текста.
На самой плате модуля можно найти маркировку чипа: ищите надпись SSD1106 или SS1106. Также часто используется совместимый чип SH1106.
Совместимые и аналогичные модели драйверов
Здесь важно разделить полные аналоги и драйверы, совместимые на уровне библиотек.
1. Прямой аналог и "конкурент": SH1106
- SH1106 — драйвер от компании Sinowealth.
- Ключевое отличие: У SH1106 буфер дисплейной памяти рассчитан на 132x64 пикселя, хотя физически дисплей чаще всего 128x64. Из-за этого при использовании библиотек, заточенных под SSD1106, может появляться горизонтальный сдвиг на 2 пикселя по краям.
- Совместимость: Высокая. Большинство библиотек для Arduino (например, Adafruit SSD1306, U8g2) имеют поддержку SH1106. Часто в коде нужно лишь изменить адрес или указать модель дисплея.
2. Совместимые на уровне библиотек (для Arduino):
Эти драйверы управляют похожими OLED-дисплеями и могут использовать те же библиотеки, что и SSD1106/SH1106. При инициализации в коде нужно указать другой тип дисплея.
- SSD1305, SSD1309: Более старые или немного модифицированные версии. SSD1309, например, поддерживает большее разрешение.
- SSD1325, SSD1327: Управляют градациями серого (4-bit, 16 уровней) OLED-дисплеями, например, с разрешением 128x128.
- SSD1331: Управляет цветным (16-bit, RGB 5-6-5) OLED-дисплеем 96x64.
- SSD1351: Управляет цветным (16-bit) OLED-дисплеем 128x128.
Рекомендации для работы с Arduino
- Библиотеки: Используйте проверенные библиотеки:
- Adafruit SSD1306 + Adafruit GFX: Наиболее популярная и простая для базовой графики и текста. Прямая поддержка SSD1106/SSD1306/SH1106.
- U8glib / U8g2: Мощнейшая библиотека с поддержкой десятков дисплеев, включая SSD1106. Имеет больше шрифтов и функций, но сложнее в освоении.
- Подключение (I2C): Обязательно используйте резисторы pull-up (4.7-10 кОм) на линии SDA и SCL к +3.3В, если они не установлены на модуле.
- Питание 3.3В: Никогда не подавайте 5В на вывод VCC модуля. Если ваш Arduino только 5В (например, Uno, Nano), питайте модуль от вывода 3.3V Arduino, а для согласования уровней логики используйте конвертер уровней (Level Shifter) для линий SDA/SCL.
Пример инициализации в Adafruit SSD1306 для SSD1106 128x64 по I2C:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_ADDR 0x3C // Адрес I2C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // -1 означает отсутствие пина RESET
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.println("Hello, SSD1106!");
display.display();
}
Итог: SSD1106 — это отличный, доступный драйвер для создания четких монохромных дисплейных интерфейсов в проектах Arduino. При выборе модуля обращайте внимание на физический размер, разрешение, интерфейс (I2C/SPI) и напряжение питания. Для большинства задач подойдет 0.96" 128x64 (I2C).