Arduino OLED дисплей 0,96 128×64 i2c позволяет создавать крутые DIY проекты, сохраняя небольшие размеры DIY-устройств. OLED экран 128×64 px на базе SSD1306 довольно популярен благодаря простоте подключения к микроконтроллеру и высокому разрешению экрана 128×64 пикселей. Рассмотрим характеристики OLED модуля на базе микросхемы SSD1306, подключение к плате Arduino и возможность русификации шрифта.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- экран oled 0.96 arduino
- коннекторы
- библиотека OLED_I2C.h
- библиотека Adafruit_GFX.h и Adafruit_SSD1306.h
Дополнительные материалы на эту тему:
OLED (Organic Light-Emitting Diode) — это полупроводниковое устройство, которое излучает свет при прохождении через него электрического тока. Модуль управляется микросхемой SSD1306, которая поддерживает пять различных протоколов связи. Существуют модули с протоколом I2C, а также с протоколом SPI, и даже дисплеи с возможностью выбора (переключения) между этими двумя протоколами связи с микроконтроллером.
OLED экран Arduino распиновка, характеристики

Экран OLED на SSD1306 характеристики
- Питание: от 3 до 5 В
- Цвет экрана: монохромный
- Разрешение: 128×64 px или 128×32 px
- Графический чип: SSD1306
- Интерфейс: I2C или SPI
- Размер модуля: 27x27x4 мм
Основным преимуществом SSD1306 OLED 128×64 IIC является работа модуля без подсветки, что обеспечивает низкое энергопотребление данного модуля. Высокое разрешение OLED-дисплея Arduino позволяет отображать больше информации, в отличие от текстового дисплея LCD 1602. Для подключения используются четыре разъема — два провода для питания (5 Вольт и GND) и два провода для шины IIC (SDA и SCL).
Как подключить OLED дисплей Arduino SSD1306

| 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 |
На рисунке выше показана схема подключения I2C к OLED — разъемы SDA и SCL модуля подключены к соответствующим контактам. Для Arduino Uno и Nano SDA — порт A4, SCL — порт A5, а для Arduino Mega 2560 — порты 20 и 21 соответственно. Питание модуля осуществляется от 3,3 или 5 Вольт. Далее мы рассмотрим две популярные библиотеки для работы с экраном OLED SSD1306 — библиотеку OLED_I2C.h и Adafruit_SSD1306.h.
Скетч для SSD1306 с библиотекой OLED_I2C.h
#include "OLED_I2C.h"
OLED myOLED(SDA, SCL, 8);
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(1000);
myOLED.clrScr();
myOLED.update();
myOLED.invert(true);
delay(1000);
myOLED.setFont(MediumNumbers);
myOLED.print("123456789", RIGHT, 5);
myOLED.update();
delay(1000);
myOLED.setFont(BigNumbers);
myOLED.print("123456789", 5, 30);
myOLED.update();
delay(1000);
myOLED.clrScr();
myOLED.update();
myOLED.invert(false);
delay(1000);
}
Скетч для олед дисплея с библиотекой Adafruit
Еще одна библиотека, которая позволяет работать с дисплеем по протоколу SPI и IIC, это Adafruit_SSD1306. В дополнении к этому вам потребуется еще установить библиотеку Adafruit_GFX. Все необходимые библиотеки вы можете скачать на нашем сайте. После установки необходимых файлов, вы сможете использовать команды библиотеки Adafruit_SSD1306.h для вывода английского текста и цифр на дисплей.
#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();
}
}
Русский шрифт и буквы на OLED 128×64 Arduino

Для вывода кириллицы на экран следует использовать библиотеку OLED_I2C.h, подключив русский шрифт в скетче. В следующем небольшом примере программы реализована возможность вывода бегущей строки с русскими буквами с помощью цикла for. Кроме того, с помощью рассмотренных библиотек, на oled экран можно выводить различные картинки и логотипы с плавной прокруткой по вертикали или по горизонтали дисплея.
Скетч с русскими буквами на олед дисплее Аруино
#include "OLED_I2C.h"
OLED myOLED(SDA, SCL, 8);
extern uint8_t RusFont[];
void setup() {
myOLED.begin();
myOLED.setFont(RusFont);
}
void loop() {
for (int i = 128; i >= -40; i--) {
myOLED.print("GHBDTN!", i, 32);
myOLED.update();
delay(5);
myOLED.clrScr();
}
for (int i = -10; i <= 80; i++) {
myOLED.print("GHBDTN!", CENTER, i);
myOLED.update();
delay(5);
myOLED.clrScr();
}
}
Заключение. Мы достаточно кратко рассмотрели схему подключения ОЛЕД дисплея к Ардуино и разобрали команды библиотеки OLED_I2C.h и Adafruit_SSD1306.h для дисплея. В одной статье довольно сложно рассказать обо всех возможностях работы с SSD1306 OLED. Вы можете самостоятельно изучить эту информацию на основе примеров в архиве с библиотеками. Если у вас есть вопросы, пишите их в комментариях к этому посту.
