Как подключить OLED дисплей SSD1306 к Arduino. Какие библиотеки нужны для работы с OLED SSD1306. Как вывести текст и графику на OLED дисплей SSD1306. Какие преимущества у OLED дисплеев SSD1306 для Arduino проектов.
Характеристики OLED дисплея SSD1306
OLED дисплей SSD1306 — это компактный монохромный дисплей, который часто используется в проектах с Arduino. Рассмотрим его основные характеристики:
- Размер экрана: обычно 0.96″ или 1.3″
- Разрешение: 128×64 или 128×32 пикселя
- Интерфейс: I2C или SPI
- Напряжение питания: 3.3В — 5В
- Тип дисплея: OLED (органические светодиоды)
- Контроллер: SSD1306
Главное преимущество OLED дисплеев — высокая контрастность изображения и низкое энергопотребление. Они отлично подходят для портативных устройств на базе Arduino.
Подключение OLED дисплея SSD1306 к Arduino
Подключение OLED дисплея SSD1306 к Arduino довольно простое, особенно если использовать I2C интерфейс. Рассмотрим схему подключения:
- GND — подключаем к GND на Arduino
- SCL — подключаем к пину A5 на Arduino (для I2C)
- SDA — подключаем к пину A4 на Arduino (для I2C)
Для SPI подключения потребуется больше проводов, но оно обеспечивает более высокую скорость обмена данными. Как выбрать между I2C и SPI? I2C проще в подключении и требует меньше проводов, но SPI работает быстрее.

Установка библиотеки для работы с OLED SSD1306
Для работы с OLED дисплеем SSD1306 нам понадобится специальная библиотека. Одна из самых популярных — Adafruit SSD1306. Как установить эту библиотеку?
- Откройте Arduino IDE
- Перейдите в меню Sketch -> Include Library -> Manage Libraries
- В поиске введите «Adafruit SSD1306»
- Найдите библиотеку Adafruit SSD1306 и нажмите «Install»
После установки библиотеки Adafruit SSD1306 также потребуется установить библиотеку Adafruit GFX, если она еще не установлена. Эта библиотека предоставляет дополнительные графические функции.
Базовый скетч для вывода текста на OLED дисплей
Теперь, когда мы подключили дисплей и установили необходимые библиотеки, давайте напишем простой скетч для вывода текста на OLED дисплей SSD1306:
«`cpp #include
- Мы определяем размеры экрана и его адрес (0x3C — стандартный адрес для большинства I2C OLED дисплеев)
- Функция display.begin() инициализирует дисплей
- Методы setTextSize(), setTextColor() и setCursor() настраивают параметры текста
- display.println() выводит текст на дисплей
- display.display() обновляет физический дисплей, отображая все, что мы нарисовали в буфере
Вывод графики на OLED дисплей SSD1306
OLED дисплей SSD1306 позволяет выводить не только текст, но и простую графику. Давайте расширим наш скетч, добавив в него вывод некоторых графических элементов:
«`cpp #include
- drawLine() рисует линию между двумя точками
- drawRect() и fillRect() рисуют контур и закрашенный прямоугольник соответственно
- drawCircle() и fillCircle() рисуют контур и закрашенную окружность
Эти функции демонстрируют базовые возможности графического вывода на OLED дисплей SSD1306. С их помощью можно создавать различные интерфейсы и визуализации для ваших Arduino проектов.
Оптимизация производительности при работе с OLED SSD1306
При работе с OLED дисплеем SSD1306 важно помнить о нескольких приемах оптимизации для улучшения производительности:
- Используйте буферизацию. Вместо обновления дисплея после каждого изменения, накапливайте изменения в буфере и обновляйте дисплей одним вызовом display.display().
- Применяйте частичное обновление. Если изменяется только часть экрана, обновляйте только эту часть, используя функции setAddrWindow() и writePixels().
- Используйте аппаратное ускорение. Библиотека Adafruit_SSD1306 поддерживает аппаратное ускорение для некоторых операций, что может значительно увеличить скорость отрисовки.
- Оптимизируйте использование памяти. OLED дисплеи с разрешением 128×64 требуют 1 КБ памяти для буфера, что может быть критично для некоторых Arduino плат.
Как применить эти оптимизации на практике? Давайте рассмотрим пример с анимацией, где эти техники особенно полезны.

Создание простой анимации на OLED дисплее SSD1306
Анимация — отличный способ продемонстрировать возможности OLED дисплея и применить техники оптимизации. Создадим простую анимацию движущегося круга:
«`cpp #includeВ этом примере мы создали анимацию движущегося круга. Давайте разберем ключевые моменты оптимизации:
- Мы очищаем только область, где был круг, вместо очистки всего экрана. Это значительно уменьшает объем данных, которые нужно передать на дисплей.
- Мы обновляем дисплей только один раз за цикл, после всех изменений.
- Мы используем fillCircle() вместо drawCircle(), так как заполненные фигуры обычно рисуются быстрее.
Эти оптимизации позволяют добиться плавной анимации даже на относительно медленных Arduino платах.

Использование русских шрифтов на OLED дисплее SSD1306
Одна из частых задач при работе с OLED дисплеями — вывод текста на русском языке. Стандартная библиотека Adafruit_SSD1306 не поддерживает кириллицу, но есть способы решить эту проблему.
Для вывода русского текста можно использовать библиотеку OLED_I2C, которая поддерживает кириллицу. Вот пример использования этой библиотеки:
OLED дисплей 0.96″ 128×64, I2C, SSD1306 синий
Подключение OLED дисплея I2C к NANO и вывод Русского шрифта:
А теперь более подробно, что мы делали.
Мы использовали:
1. Arduino NANO V 3.0
2. OLED display 0.96″ I2C (IIC)
3. Макетная плата для монтажа без пайки
4. Библиотека с поддержкой русского и украинского языка OLED I2C
Дисплей подключаем к ARDUINO NANO по следующей схеме:
Вход питания дисплея VDD можно было бы подключить к 3,3V или 5V ARDUINO, но у нас задача обойтись без проводов. Поэтому мы установим цифровому порту ARDUINO «D2» значение HIGHT, это значит, что на pin «D2» ARDUINO подаст 5 вольт. Для сборки используем макетную плату:
Наш Скетч:
Устанавливаем библиотеку OLED_I2C (если не была установлена) и компилируем.
Таблица соответствия символов:
Русский символ |
Символ, заглавной буквы |
Символ, прописной буквы |
А, а |
F |
f |
Б, б |
< |
, |
В, в |
D |
d |
Г, г |
U |
u |
Д, д |
L |
l |
Е, е |
T |
t |
Ж, ж |
: |
; |
З, з |
P |
p |
И, и |
B |
b |
Й, й |
Q |
q |
К, к |
R |
r |
Л, л |
K |
k |
М, м |
V |
v |
Н, н |
Y |
y |
О, о |
J |
j |
П, п |
G |
g |
Р, р |
H |
h |
С, с |
C |
c |
Т, т |
N |
n |
У, у |
E |
e |
Ф, ф |
A |
a |
Х, х |
{ |
[ |
Ц, ц |
W |
w |
Ч, ч |
X |
x |
Ш, ш |
I |
i |
Щ, щ |
O |
o |
Ъ, ъ |
} |
] |
Ы, ы |
S |
s |
Ь, ь |
M |
m |
Э, э |
~ |
` |
Ю, ю |
> |
. |
Я, я |
Z |
z |
Для простоты написания, переключаемся на английскую раскладку и набираем текст Русскими буквами!
Arduino oled в категории «Телекоммуникации и связь»
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый oo
Доставка по Украине
264.50 грн
343.50 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый on
Доставка по Украине
264.72 грн
343.79 грн
Купить
OLED Arduino дисплей модуль (белый), 0,91 дюйма 128×32
На складе в г. Винница
Доставка по Украине
85 грн
Купить
Винница
OLED дисплей графический SSD1306 I2C 0.96» 128×64 Arduino, сине-желтый
На складе
Доставка по Украине
194 — 322 грн
от 12 продавцов
227 грн
303 грн
Купить
0. 91 OLED Arduino дисплей модуль 128х32 [#5-3]
На складе в г. Запорожье
Доставка по Украине
85 грн
Купить
Запорожье
OLED модуль — дисплей Arduino, 0.96 дюйма, 128×64, белый
На складе в г. Винница
Доставка по Украине
90 грн
Купить
Винница
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый
На складе
Доставка по Украине
152 — 220 грн
от 18 продавцов
190 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый
На складе в г. Ровно
Доставка по Украине
по 190 грн
от 4 продавцов
190 грн
Купить
OLED дисплей 1.3″ I2C (синий) 128х64
Доставка по Украине
189 грн
Купить
0.91″ белый OLED LCD дисплей 128х32, I2C, модуль для Arduino
Доставка по Украине
123. 50 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый, 103054
На складе в г. Ровно
Доставка по Украине
200 грн
Купить
OLED дисплей графический SSD1306 I2C 0.96» 128×64 Arduino, сине-желтый
На складе в г. Ровно
Доставка по Украине
190 — 388 грн
от 2 продавцов
190 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый
Доставка из г. Ровно
190 грн
Купить
OLED дисплей графический SSD1306 I2C 0.91″ 128×32 Arduino AVR STM32
Доставка по Украине
по 125 грн
от 2 продавцов
125 грн
Купить
ESP32 OLED-дисплей Bluetooth WIFI odule CP2102 Internet Development Board for Arduino
Доставка из г. Днепр
910 грн
Купить
Смотрите также
OLED дисплей графический SSD1306 I2C 0.91″ 128×32 Arduino AVR STM32
Заканчивается
Доставка по Украине
125 — 148 грн
от 3 продавцов
125 грн
Купить
OLED дисплей графический SSD1306 I2C 0. 91″ 128×32 Arduino AVR STM32
Доставка по Украине
по 125 грн
от 3 продавцов
125 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый
Доставка по Украине
190 грн
Купить
OLED дисплей графический SSD1306 I2C 0.91» 128×32 Arduino AVR STM32
Доставка из г. Ровно
125 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый Без бренда
Доставка по Украине
230 — 295 грн
от 2 продавцов
230 грн
Купить
OLED дисплей графический SSD1306 I2C 0.91″ 128×32 Arduino AVR STM32
Доставка по Украине
148 — 157 грн
от 3 продавцов
157 грн
449 грн
Купить
Хіт дня: OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый !
Доставка по Украине
295.48 грн
332 грн
Купить
Модуль 128 X 64 OLED LCD экран 0.96 » I2C IIC SPI
Доставка из г. Днепр
по 123. 2 грн
от 2 продавцов
123.20 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый
Доставка по Украине
267 грн
286 грн
Купить
Новинка OLED дисплей графический SSD1306 I2C 0.96» 128×64 Arduino, сине-желтый !
Доставка по Украине
206 грн
275 грн
Купить
Новинка OLED дисплей графический SSD1306 I2C 0.91″ 128×32 Arduino AVR STM32 !
Доставка по Украине
135 грн
180 грн
Купить
OLED дисплей графический SSD1306 I2C 0.96» 128×64 Arduino, сине-желтый MLN
Доставка из г. Киев
202 грн
253 грн
Купить
OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый
Доставка по Украине
267 грн
284 грн
Купить
1.3″ LCD IPS Arduino дисплей модуль 240х240 [#7-3]
На складе в г. Запорожье
Доставка по Украине
150 грн
Купить
Запорожье