СОДЕРЖАНИЕ ►
OLED дисплей Arduino 0,96 дюйма позволяет создавать крутые проекты с экраном, при этом сохраняя миниатюрные размеры DIY устройства. Модули OLED на базе SSD1306 весьма популярны благодаря простому подключению к микроконтроллеру и высокому разрешению экрана – 128×64 пикселя. Рассмотрим характеристики OLED с I2C, подключение к Arduino и разберем команды библиотек: Adafruit_SSD1306 и OLED_I2C.

Arduino I2C OLED display подключение
OLED (Organic Light-Emitting Diode) — это полупроводниковый прибор, излучающий свет при прохождении через него электрического тока. Управление модулем осуществляет с помощью чипа SSD1306, который поддерживает пять разных протоколов связи. Встречаются модули не только с протоколом IIC, но и с протоколом SPI, и даже олед дисплеи с возможностью выбора (переключения) между этими двумя протоколами.
Характеристики OLED I2C 128×64 / 128×32
- Цвет экрана — монохромный;
- Разрешение — 128×64 или 128×32;
- Графический чип — SSD1306;
- Интерфейс — I2C или SPI;
- Питание модуля — от 3 до 5 В;
- Размер модуля — 27x27x4 мм.

Главным плюсом OLED 128×64 iic является работа модуля без подсветки, за счет чего обеспечивается низкое потребление тока этим модулем. А высокое разрешение OLED 128×64 px Arduino позволяет вывести на дисплей большее количество информации, в отличии от текстового экрана 1602. Для подключения используется четыре разъема — два провода для питания (5V и GND) и два провода для шины IIC (SDA и SCL).
Подключение OLED I2C 128×64 к Arduino
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega;
- lcd oled 128×32 / lcd oled 128×64;
- провода «папа-мама».

| OLED i2c 0,96 | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
На изображении выше, показана схема подключения OLED I2C — разъемы SDA и SCL модуля подключаются к соответствующим пинам на микроконтроллере. У Arduino Uno и Nano SDA — пин A4, SCL — пин A5, а у Arduino Mega — 20 и 21 пин, соответственно. Питание модуля 3,3 или 5 Вольт. Далее рассмотрим две популярные библиотеки для работы с OLED SSD1306 — это библиотека OLED_I2C.h и Adafruit_SSD1306.h.
Библиотеки для OLED I2C 0,96 Arduino
Библиотека OLED_I2C.h позволяет менять шрифт текста (размер), выводить латинские и русские буквы на экран, а также позиционировать текст на дисплее (по левому и правому краю или по центру). В следующем скетче показано максимальное количество возможностей команд данной библиотеки с подробными комментариями. Подключите ОЛЕД дисплей, согласно схеме выше, и загрузите программу в плату Ардуино Уно.
Скетч. Библиотека OLED_I2C.h команды, описание
#include "OLED_I2C.h" // подключаем библиотеку для экрана OLED myOLED(SDA, SCL, 8); // создаем объект myOLED // подключаем шрифты для текста и цифр extern uint8_t TinyFont[]; extern uint8_t SmallFont[]; extern uint8_t MediumNumbers[]; extern uint8_t BigNumbers[]; void setup(){ myOLED.begin(); // инициализируем экран } void loop(){ // выводим текст по левому краю экрана myOLED.setFont(TinyFont); myOLED.print("ABCDEFGHIJKLMNOPQRSTUVWXYZ", LEFT, 10); myOLED.update(); delay(1000); // выводим текст по центру экрана myOLED.setFont(SmallFont); myOLED.print("ABCDEFG", CENTER, 25); myOLED.update(); delay(2000); myOLED.clrScr(); // очищаем экран от надписей myOLED.update(); myOLED.invert(true); // включаем инверсию экрана delay(1000); // выводим цифры по правому краю экрана myOLED.setFont(MediumNumbers); myOLED.print("123456789", RIGHT, 5); myOLED.update(); delay(1000); // выводим цифры, начиная с 5 пикселя строки myOLED.setFont(BigNumbers); myOLED.print("123456789", 5, 30); myOLED.update(); delay(2000); myOLED.clrScr(); // очищаем экран от надписей myOLED.update(); myOLED.invert(false); // отключаем инверсию экрана delay(1000); }
Пояснения к коду:
- библиотека использует много оперативной памяти микроконтроллера для загрузки шрифтов, поэтому работать с OLED дисплеем на плате Arduino Nano не получится. Скетч не загрузится из-за нехватки свободной памяти;
- ещё больше возможностей библиотеки можно узнать из стандартных скетчей.

Еще одна библиотека, которая позволяет работать с дисплеем 0,96 по протоколу SPI и IIC, это Adafruit_SSD1306. В дополнении к этому вам потребуется еще установить библиотеку Adafruit_GFX. Все необходимые библиотеки вы можете скачать на нашем сайте — здесь. После установки необходимых файлов, вы сможете использовать команды библиотеки Adafruit_SSD1306.h для вывода текста на олед дисплей.
Скетч. Библиотека Adafruit_SSD1306.h команды
// библиотеки для работы с OLED экраном Arduino IDE #include "Wire.h" #include "Adafruit_GFX.h" #include "Adafruit_SSD1306.h" Adafruit_SSD1306 display(128, 64, &Wire, 4); // указываем размер экрана в пикселях void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // указываем адрес устройства на шине display.clearDisplay(); display.setTextSize(1, 2); // указываем размер шрифта display.setTextColor(SSD1306_WHITE); // указываем цвет надписи display.setCursor(30, 10); display.println("ARDUINO"); display.display(); delay(3000); display.clearDisplay(); // очищаем экран } void loop() { display.setTextSize(3); // указываем размер шрифта display.setTextColor(SSD1306_WHITE); // указываем цвет надписи for (int i = 0; i <= 100; i++) { display.setCursor(20, 10); display.println(i); display.display(); delay(100); display.clearDisplay(); // очищаем экран } }
Пояснения к коду:
- адрес устройства — 0x3C, можно узнать с помощью программы для сканирования шины I2C микроконтроллера Ардуино;
display.setTextSize(1, 2);в этой строчке можно указывать два параметра — первая цифра задает размер шрифта, а вторая высоту шрифта.
Кириллица, русский шрифт OLED I2C 128×64
Для вывода русских букв следует использовать библиотеку OLED_I2C.h, подключив русский шрифт в программе. В следующем скетче реализована возможность вывода бегущей строки с помощью цикла for Arduino IDE. Кроме того, с помощью библиотек, рассмотренных на этой странице, на олед экран можно выводить различные картинки и логотипы с прокруткой по вертикали или по горизонтали олед дисплея.
Скетч. Русификация дисплея OLED I2C Arduino
#include "OLED_I2C.h" // библиотека для oled экрана OLED myOLED(SDA, SCL, 8); // создаем объект myOLED extern uint8_t RusFont[]; // подключаем русский шрифт void setup() { // инициализируем экран с русским шрифтом myOLED.begin(); myOLED.setFont(RusFont); } void loop() { // бегущая строка на oled с русскими буквами for (int i = 128; i >= -40; i--) { myOLED.print("GHBDTN!", i, 32); myOLED.update(); delay(5); myOLED.clrScr(); // очищаем экран OLED } // выплывающая строка на oled с русскими буквами for (int i = -10; i <= 80; i++) { myOLED.print("GHBDTN!", CENTER, i); myOLED.update(); delay(5); myOLED.clrScr(); // очищаем экран OLED } }
Пояснения к коду:
- переменная i в цикле for меняет положение надписи в строке от 128 до -40 пикселей (если надпись будет длиннее то нижний диапазон нужно увеличить);
- минусом библиотеки является то, что некоторые символы будут тоже переводиться в русские буквы, например, «точка» превратится в букву «ю».
Заключение. Мы постарались наиболее полно рассмотреть схему подключения OLED 0,96 к Ардуино и разобрать команды библиотек для экрана. Рассказать обо всех возможностях работы с OLED в одном обзоре довольно сложно. Вы можете изучить эту информацию на основе примеров из архива с библиотеками самостоятельно. Если у вас остались вопросы по теме — пишите их в комментариях к этой записи.










Для какой платы ардуино написан этот скетч?
Для любой платы, главное чтобы хватило памяти для шрифтов. При использовании в скетче русского шрифта для ОЛЕД дисплея — памяти Нано уже не хватит
Тот момент, когда прочитал этот комментарий только после того, как успешно поставил на нано русскую прошивку)
Возможно на 318 не хватает, а на 328 вполне себе хватает памяти.
для всех кроме нано
«…
extern uint8_t RusFont[]; // подключаем русский шрифт
…»
Подключаем, взяв его откуда? оО
из библиотеки
Это графический дисплей, каждый символ — массив точек сохраненный в памяти. Для практического использования есть только два пути: если нужны только цифры (часы, термометр и т.п) — то в библиотеке оставляем часть массива с числами и несколько спецсимволов. Если нужно все — Atmega 128 или ESP32
что делеать если пишет C:\Users\timoy\Documents\Arduino\libraries\Adafruit-GFX-Library-master/Adafruit_GFX.h:12:10: fatal error: Adafruit_I2CDevice.h: No such file or directory
#include