Перейти к содержанию

Подключение SSD1306 OLED дисплея к Ардуино

OLED дисплей Ардуино на SSD1306 подключение

Arduino OLED дисплей 0,96 128×64 i2c позволяет создавать крутые DIY проекты, сохраняя небольшие размеры DIY-устройств. OLED экран 128×64 px на базе SSD1306 довольно популярен благодаря простоте подключения к микроконтроллеру и высокому разрешению экрана 128×64 пикселей. Рассмотрим характеристики OLED модуля на базе микросхемы SSD1306, подключение к плате Arduino и возможность русификации шрифта.

Необходимые компоненты:

Дополнительные материалы на эту тему:

  1. Тетрис на Ардуино с OLED дисплеем
  2. Часы на индикаторе TM1637 Arduino
  3. Таймер на LCD с обратным отсчётом

OLED (Organic Light-Emitting Diode) — это полупроводниковое устройство, которое излучает свет при прохождении через него электрического тока. Модуль управляется микросхемой SSD1306, которая поддерживает пять различных протоколов связи. Существуют модули с протоколом I2C, а также с протоколом SPI, и даже дисплеи с возможностью выбора (переключения) между этими двумя протоколами связи с микроконтроллером.

OLED экран Arduino распиновка, характеристики

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 дисплей 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 дисплей Ардуино на SSD1306 подключение

Для вывода кириллицы на экран следует использовать библиотеку 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. Вы можете самостоятельно изучить эту информацию на основе примеров в архиве с библиотеками. Если у вас есть вопросы, пишите их в комментариях к этому посту.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜