Как подключить OLED-дисплей I2C SSD1306 к Arduino. Какие библиотеки нужны для работы с OLED-дисплеем. Как вывести текст и графику на OLED-экран с помощью Arduino. Какие преимущества у OLED-дисплеев по сравнению с другими типами дисплеев.
Что такое OLED-дисплей SSD1306 и его характеристики
OLED-дисплей SSD1306 — это компактный монохромный графический дисплей, который часто используется в проектах с Arduino и другими микроконтроллерами. Основные характеристики этого дисплея:
- Диагональ экрана: 0,96 дюйма (2,7 x 2,8 см)
- Разрешение: 128×64 пикселя
- Интерфейс подключения: I2C
- Напряжение питания: 3,3-5В
- Потребляемый ток: менее 10 мА
- Контроллер дисплея: SSD1306
Главное преимущество OLED-дисплеев — высокая контрастность и яркость изображения даже при низком энергопотреблении. Это делает их отличным выбором для портативных устройств на батарейках.
Подключение OLED-дисплея к Arduino
Подключение OLED-дисплея SSD1306 к Arduino очень простое благодаря использованию интерфейса I2C. Для подключения потребуется всего 4 провода:

- VCC — подключается к выводу 5V или 3.3V Arduino
- GND — подключается к выводу GND Arduino
- SCL — подключается к выводу SCL Arduino (A5 на Arduino Uno)
- SDA — подключается к выводу SDA Arduino (A4 на Arduino Uno)
Каким будет принцип подключения проводов дисплея к конкретной модели Arduino? Это зависит от расположения выводов I2C на вашей плате. Для большинства популярных моделей Arduino схема подключения будет следующей:
- Arduino Uno/Nano: SCL — A5, SDA — A4
- Arduino Mega: SCL — 21, SDA — 20
- Arduino Leonardo: SCL — 3, SDA — 2
Установка необходимых библиотек
Для работы с OLED-дисплеем SSD1306 нам потребуются две библиотеки:
- Adafruit GFX Library — базовая графическая библиотека
- Adafruit SSD1306 — библиотека для работы с конкретной моделью дисплея
Как установить эти библиотеки? Проще всего сделать это через менеджер библиотек Arduino IDE:
- Откройте Arduino IDE
- Перейдите в Скетч -> Подключить библиотеку -> Управлять библиотеками
- В поиске введите «Adafruit GFX» и установите библиотеку
- Аналогично найдите и установите «Adafruit SSD1306»
После установки библиотек перезапустите Arduino IDE, чтобы изменения вступили в силу.

Базовый скетч для вывода текста на дисплей
Давайте рассмотрим простой пример вывода текста «Hello, World!» на OLED-дисплей:
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); } display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("Hello, World!"); display.display(); } void loop() { }
Что делает этот код?
- Подключает необходимые библиотеки
- Определяет размеры экрана
- Создает объект дисплея
- Инициализирует дисплей
- Очищает экран
- Устанавливает параметры текста (размер, цвет, позиция)
- Выводит текст «Hello, World!»
- Отображает содержимое буфера на экране
Вывод графики на OLED-дисплей
Помимо текста, библиотека Adafruit GFX позволяет рисовать различные графические примитивы. Вот пример, демонстрирующий некоторые возможности:

void setup() {
// Инициализация дисплея
display.clearDisplay();
// Рисуем линию
display.drawLine(0, 0, 127, 63, WHITE);
// Рисуем прямоугольник
display.drawRect(10, 10, 50, 30, WHITE);
// Рисуем закрашенный круг
display.fillCircle(100, 30, 20, WHITE);
display.display();
}
Этот код рисует на экране линию по диагонали, прямоугольник и закрашенный круг. Функции drawLine(), drawRect() и fillCircle() — это лишь некоторые из доступных графических функций.
Оптимизация производительности при работе с OLED-дисплеем
При работе с OLED-дисплеем важно учитывать некоторые особенности для оптимизации производительности:
- Используйте буферизацию. Вместо обновления отдельных пикселей, обновляйте весь экран за раз с помощью display.display().
- Очищайте только измененные области экрана, а не весь дисплей.
- Используйте частичное обновление экрана, если поддерживается вашим дисплеем.
- Ограничьте частоту обновления экрана, особенно в проектах на батарейках.
Пример оптимизированного кода для анимации:

void loop() {
static int x = 0;
// Очищаем только область, где был предыдущий круг
display.fillRect(x-5, 25, 10, 10, BLACK);
// Рисуем новый круг
x = (x + 1) % 128;
display.fillCircle(x, 30, 5, WHITE);
// Обновляем только измененную область
display.display();
delay(50); // Ограничиваем частоту обновления
}
Преимущества использования OLED-дисплеев в проектах Arduino
OLED-дисплеи имеют ряд преимуществ по сравнению с другими типами дисплеев, используемых в проектах Arduino:
- Высокая контрастность и яркость изображения
- Широкий угол обзора (почти 180 градусов)
- Низкое энергопотребление
- Быстрый отклик (нет задержки при обновлении)
- Компактные размеры
- Простое подключение по I2C интерфейсу
Эти преимущества делают OLED-дисплеи отличным выбором для портативных устройств, систем мониторинга и других проектов, где важны качество изображения и энергоэффективность.
Решение проблем при работе с OLED-дисплеем
При работе с OLED-дисплеем SSD1306 могут возникнуть некоторые проблемы. Вот наиболее распространенные из них и способы их решения:

- Дисплей не включается:
- Проверьте правильность подключения проводов
- Убедитесь, что напряжение питания соответствует требованиям дисплея
- Проверьте I2C-адрес дисплея (обычно 0x3C или 0x3D)
- Изображение искажено или перевернуто:
- Используйте функции display.setRotation() для корректировки ориентации
- Проверьте правильность настроек разрешения экрана в коде
- Текст отображается некорректно:
- Убедитесь, что используете поддерживаемый шрифт и размер текста
- Проверьте кодировку текста в вашем скетче
Если проблема сохраняется, попробуйте использовать отладочный вывод через Serial Monitor для выявления места, где возникает ошибка.
Arduino oled в категории «Телекоммуникации и связь»
OLED модуль — дисплей Arduino, 0.96 дюйма, 128×64, белый
На складе в г. Винница
Доставка по Украине
85 грн
Купить
Винница
0.96 OLED Arduino дисплей модуль 128х64[#5-7]
На складе в г. Запорожье
Доставка по Украине
85 грн
Купить
Запорожье
0.91 OLED Arduino дисплей модуль 128х32 [#5-3]
На складе в г. Запорожье
Доставка по Украине
85 грн
Купить
Запорожье
OLED Arduino дисплей модуль (белый), 0,91 дюйма 128×32
На складе в г. Винница
Доставка по Украине
80 грн
Купить
Винница
OLED дисплей 1.3″ I2C (синий) 128х64
Доставка по Украине
189 грн
Купить
OLED дисплей 1. 3″ I2C (синий) 128х64
Доставка по Украине
189 грн
Купить
OLED LCD ЖК дисплей/экран 0,96″ 2,7х2,8см 128×64
Доставка из г. Полтава
139.99 грн
Купить
Полтава
Модуль 128 X 64 OLED LCD экран 0.96 » I2C IIC SPI
Доставка из г. Днепр
по 120.1 грн
от 2 продавцов
120.10 грн
Купить
ESP32 OLED-дисплей Bluetooth WIFI odule CP2102 Internet Development Board for Arduino
Доставка из г. Днепр
910 грн
Купить
У нас: OLED дисплей графический SSD1306 I2C 4p 0.96″ 128×64 Arduino, сине-желтый EVO
Доставка по Украине
352 грн
Купить
1.3″ LCD IPS Arduino дисплей модуль 240х240 [#7-3]
На складе в г. Запорожье
Доставка по Украине
150 грн
Купить
Запорожье
OLED дисплей 0.91 I2C (синий) 128х32
Доставка по Украине
97 грн
Купить
OLED дисплей 0. 91 I2C (белый) 128х32
Доставка по Украине
97 грн
Купить
Индикатор цветной 2.0″ TFT ЖКИ IPS 240×320 SPI ST7789
На складе
Доставка по Украине
254.20 грн
Купить
Дисплей OLED 0.96 модуль SSD1306 I2C 128×64
На складе в г. Умань
Доставка по Украине
133 грн
Купить
Смотрите также
Дисплей OLED 0.91 модуль SSD1306 I2C 128×32
На складе в г. Умань
Доставка по Украине
103 грн
Купить
LCD OLED 0.96» 128×64 SPI Дисплей (синій)
Доставка по Украине
308 грн
Купить
RGB OLED LCD 0.95» 128×64 SPI SSD1331
Доставка по Украине
596.80 грн
Купить
LCD OLED 0.96» 128×64 SPI/I2C Yellow-Blue
Доставка по Украине
385 грн
Купить
LCD OLED 1.3» 128×64 SPI/I2C Blue
Доставка по Украине
462 грн
Купить
OLED Дисплей 1.3» 128×64 I2C (синій)
Доставка по Украине
385 грн
Купить
Индикатор OLED 0. 91″ 128×32 белый
На складе
Доставка по Украине
85 грн
Купить
Индикатор OLED 1.3″ 128×64 белый
На складе
Доставка по Украине
184.50 грн
Купить
Индикатор цветной 1,8″ TFT IPS ЖКИ 128×160 SPI
На складе
Доставка по Украине
196.80 грн
Купить
Индикатор цветной 1,3″ TFT ЖКИ IPS 240×240 SPI ST7789
На складе
Доставка по Украине
184.50 грн
Купить
Модуль OLED дисплей 0.96 SPI 128×64 (синий)
На складе в г. Одесса
Доставка по Украине
133 грн
Купить
Одесса
Модуль OLED дисплей 0.96 SPI 128×64 белый
На складе в г. Одесса
Доставка по Украине
133 грн
Купить
Одесса
Модуль OLED дисплей для платы WeMos D1, D1 mini
На складе в г. Одесса
Доставка по Украине
154 грн
Купить
Одесса
Модуль дисплей OLED 0.96 SPI 128×64 сине-желтый
На складе в г. Одесса
Доставка по Украине
133 — 136 грн
от 2 продавцов
133 грн
Купить
Одесса
OLED дисплей 1.30″ 128×64, I2C, Sh2106, белый
Подключение OLED дисплея к ARDUINO UNO R3 и вывод Русского шрифта:
А теперь более подробно, что мы делали.
Мы использовали:
1. Arduino UNO R3
2. OLED display 0.96″ I2C (IIC)
4. Библиотека с поддержкой русского и украинского языка OLED I2C
Дисплей подключаем к ARDUINO UNO по следующей схеме:
Вход питания дисплея VDD можно было бы подключить к 3,3V или 5V ARDUINO, но у нас задача обойтись без проводов. Поэтому мы установим цифровому порту ARDUINO 13 значение HIGHT, это значит, что на pin 13 ARDUINO подаст 5 вольт. Подключаем дисплей напрямую в UNO:
Наш Скетч:
Устанавливаем библиотеку 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 | Adafruit Grayscale 1,5-дюймовый OLED-дисплей 128×128
Подключение и тестирование Arduino
Сохранить Подписаться
Пожалуйста, войдите, чтобы подписаться на это руководство.
После входа в систему вы будете перенаправлены обратно к этому руководству и сможете подписаться на него.
Вы можете легко подключить этот выход к любому микроконтроллеру — ниже используется Adafruit Metro. Для другого типа микроконтроллера, если у вас есть 4 доступных контакта, можно «побитить SPI» или вы можете использовать два контакта I2C, но обычно эти контакты фиксируются аппаратно. Просто проверьте библиотеку, а затем портируйте код.
I2C-проводка
Используйте этот провод, если вы хотите подключиться через интерфейс I2C
- Подключите Vin (красный провод на версии STEMMA QT) к источнику питания, 3-5В в порядке. Используйте то же напряжение, на котором основана логика микроконтроллера. Для большинства Arduinos это 5V .
- Подключите GND (черный провод в версии STEMMA QT) к общему заземлению питания/данных
- Подключите контакт Clk (желтый провод в версии STEMMA QT) к часам I2C SCL на вашем Arduino. На Arduino на базе UNO и ‘328 он также известен как A5 , на Mega он также известен как digital 21 , а на Leonardo/Micro – digital 3
. - Подключите контакт данных (синий провод в версии STEMMA QT) к контакту данных I2C SDA на вашем Arduino. На Arduino на базе UNO и ‘328 он также известен как A4 , на Mega он также известен как digital 20 , а на Leonardo/Micro — 9.
0020 цифровой 2
Проводка SPI
Если вы хотите использовать плату в SPI. режиме, вам нужно сначала отрезать J1 и J2. См. Распиновки для более подробной информации.
Поскольку это дисплей с поддержкой SPI, мы можем использовать аппаратный или «программный» SPI. Чтобы сделать разводку одинаковой на всех Arduino, мы начнем с «программного» SPI. Должны использоваться следующие контакты:
- Подключите Vin к источнику питания, 3-5В в порядке. Используйте то же напряжение, на котором основана логика микроконтроллера. Для большинства Arduinos это 5V
- Подключите GND к общему заземлению питания/данных .
- Подключите контакт Clk к контакту SPI Clock SCK на Arduino. В Arduino на базе UNO & ‘328 он также известен как 13 . На таких платах, как Metro M0/M4, вам нужно использовать контакт 3 разъема ICSP .
- Подключите контакт Data к контакту данных SPI MOSI на Arduino. На Arduino на базе UNO и ‘328 это также известно как 9.0020 11 . На таких платах, как Metro M0/M4, вам нужно будет использовать контакт 4 разъема ICSP .
- Подключите контакт DC к D8 на плате Arduino и подобных платах. Если у вас нет этого вывода на вашем микроконтроллере, не стесняйтесь использовать другой и обновить пример.
- Подключите контакт CS к D10 на плате Arduino и подобных платах. Если у вас нет этого вывода на вашем микроконтроллере, не стесняйтесь использовать другой и обновить пример.
Загрузка библиотек
Чтобы начать считывание данных датчика, вам необходимо загрузить Adafruit_SSD1327 и Adafruit_GFX из диспетчера библиотек Arduino.
В среде IDE откройте менеджер библиотек. ..
и введите adafruit EPD , чтобы найти библиотеку. Нажмите Install
Если вы хотите рисовать растровые изображения, сделайте то же самое с adafruit SSD1327 , нажмите Install
Сделайте то же самое, чтобы установить последнюю версию adafruit GFX библиотека, нажмите Установить
Если вы используете более раннюю версию Arduino IDE (до 1.8.10), найдите и установите Adafruit_BusIO (в более новых версиях это условие выполняется автоматически).
Запустите демонстрацию
Откройте Файл → Примеры → Adafruit_SSD1327 → ssd1327_test
Внесите необходимые изменения в контакты. Если вы работаете в режиме SPI, закомментируйте инициализатор I2C, а затем раскомментируйте аппаратный или программный инициализатор SPI в зависимости от того, как вы его подключили и хотите ли вы использовать аппаратные контакты SPI или нет.
Загрузите скетч в свой микроконтроллер, и вы должны увидеть серию тестов, завершающихся падением нескольких хлопьев Adafruit.
Ваш браузер не поддерживает видео тег.
Распиновка Подключение и использование CircuitPython
Это руководство было впервые опубликовано 10 ноября 2020 г. Оно было последним обновлено 10 ноября 2020 г.
Эта страница (Проводка и тестирование Arduino) последний раз обновлялась 02 ноября 2020 г.
Текстовый редактор на базе tinymce.
ВАШЕ ИМЯ
ВАША ЭЛЕКТРОННАЯ ПОЧТА
Использование OLED-дисплея I2C SSD1306 с Arduino
Введение
Иногда при создании проекта аппаратного обеспечения может потребоваться использование дисплея, но есть один сбивающий с толку момент — размер дисплея и необходимые контакты для управления им. В этом руководстве показано, как использовать небольшой OLED-дисплей I2C с Arduino, используя всего два провода.
Geekcreit 0,96-дюймовый модуль OLED-дисплея I2C
Дисплей, используемый в этом руководстве, имеет очень маленький (2,7 x 2,8 см) OLED-экран, аналогичный размеру Arduino Pro Mini, с разрешением экрана 128 x 64. ИС драйвера OLED — это SSD1306, однокристальный драйвер CMOS OLED/PLED с контроллером для системы матричных графических дисплеев на органических/полимерных светоизлучающих диодах. У модуля всего 4 контакта, два из них — контакты питания, а остальные — SCL и SDA, контакты протокола I2C, которые будут использоваться для управления дисплеем.
Этот модуль дисплея OLED полностью совместим с Arduino и имеет диапазон входного напряжения от 3,3 В до 6 В, и ему требуется ток менее 10 мА, поэтому его можно подключать к контактам 3,3 В или 5 В. Он доступен в магазине Banggood примерно за 5,5 долларов.
Детали, которые вам понадобятся
- OLED-дисплей
- Arduino (Arduino Mega в этом руководстве)
- Источник питания, блок питания, аккумулятор или USB-кабель.
- Провода.
Цепь
Схема очень проста. Сначала соедините GND с Arduino GND, VCC с 3,3 В или 5 В на Arduino, SCL с SCL и, наконец, SDA с выводом SDA. Загрузите код и включите Arduino.
Протокол I2C
Протокол Inter-Integrated Circuit (I2C) — это протокол, предназначенный для обеспечения связи нескольких подчиненных цифровых интегральных схем с одним или несколькими ведущими микросхемами. Он предназначен только для связи на короткие расстояния в рамках одного устройства, и для обмена информацией требуется всего два сигнальных провода.
Каждая шина I2C состоит из двух сигналов: SCL и SDA. SCL — это тактовый сигнал, а SDA — сигнал данных. Тактовый сигнал всегда генерируется текущим мастером шины. Сообщения разбиты на два типа фреймов: адресный фрейм, где ведущий указывает ведомое устройство, которому отправляется сообщение, и один или несколько фреймов данных, которые представляют собой 8-битные сообщения данных, передаваемые от ведущего к ведомому или наоборот. . Данные помещаются в линию SDA после того, как SCL становится низким, и отбираются после того, как линия SCL становится высокой.
Код
Прежде всего вам необходимо загрузить две библиотеки:
- Библиотека Adafruit GFX, это основная графическая библиотека, предоставляющая общий набор графических примитивов (точки, линии, окружности и т.