OLED дисплей 128x64 I2C


В этом примере подключение дисплея OLED 128x64 осуществляется по I2C, вывод текста на русском языке с использованием дополнительных библиотек.

Пример скетча подключения OLED дисплея к Ардуино с исходниками

Компоненты

Можно собрать схему на макетной плате, но можно и "на прямую".

Подключение

Контроллер - > Дисплей

  • 5V -> VCC
  • GND -> GND
  • A4 -> SDA
  • A5 -> SCK

Пример скетча подключения OLED дисплея к Ардуино с исходниками

Код


//  Пример скетча подключения OLED дисплея к Ардуино
//  https://v-spirit.net/oled-displey-128x64-i2c/

// Подключаем необходимые библиотеки
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 5
Adafruit_SSD1306 display(OLED_RESET);

// Изображение 128x20 точек
// Преобразовать bmp файл в код можно онлайн конвертером - http://git.robotclass.ru/tools/bmptobin.html
const unsigned char PROGMEM logoBmp[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x3f, 0xfe, 0x0f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 
0x40, 0x01, 0x10, 0x10, 0x01, 0x80, 0x18, 0x00, 0x07, 0xe0, 0x00, 0x01, 0xe0, 0x00, 0x20, 0x04, 
0x46, 0x49, 0x94, 0x50, 0x01, 0x80, 0x18, 0x00, 0x07, 0xe0, 0x00, 0x01, 0xe0, 0x00, 0x2d, 0xb6, 
0x49, 0x51, 0x92, 0x90, 0x00, 0x60, 0x60, 0x01, 0xff, 0xff, 0xe0, 0x07, 0xf8, 0x00, 0x2d, 0xb2, 
0x49, 0x61, 0x91, 0x10, 0x00, 0x60, 0x60, 0x01, 0xff, 0xff, 0xe0, 0x07, 0xf8, 0x00, 0x2d, 0xb2, 
0x49, 0x51, 0x92, 0x90, 0x01, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xf8, 0x1f, 0xfe, 0x00, 0x2d, 0xb6, 
0x46, 0x49, 0x94, 0x50, 0x01, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xf8, 0x1f, 0xfe, 0x00, 0x20, 0x04, 
0x40, 0x01, 0x90, 0x10, 0x07, 0xff, 0xfe, 0x07, 0xe1, 0xe1, 0xf8, 0x79, 0xe7, 0x80, 0x3f, 0xfc, 
0x3f, 0xfe, 0x8f, 0xe0, 0x07, 0xff, 0xfe, 0x07, 0xe1, 0xe1, 0xf8, 0x79, 0xe7, 0x80, 0x00, 0x00, 
0x1f, 0xff, 0x00, 0x00, 0x1f, 0x3f, 0xcf, 0x87, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0x80, 0x00, 0x00, 
0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0xcf, 0x87, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0x80, 0x00, 0x0c, 
0x00, 0x00, 0x00, 0x00, 0x19, 0xff, 0xf9, 0x80, 0x1e, 0x1e, 0x00, 0x06, 0x18, 0x00, 0x00, 0x0c, 
0x00, 0x00, 0x00, 0x00, 0x19, 0xff, 0xf9, 0x80, 0x1e, 0x1e, 0x00, 0x06, 0x18, 0x00, 0x00, 0x6c, 
0x00, 0x00, 0x00, 0x00, 0x19, 0x80, 0x19, 0x80, 0x79, 0xe7, 0x80, 0x19, 0xe6, 0x00, 0x00, 0x6c, 
0x00, 0x00, 0x00, 0x00, 0x19, 0x80, 0x19, 0x80, 0x79, 0xe7, 0x80, 0x19, 0xe6, 0x00, 0x03, 0x6c, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xe0, 0x07, 0x80, 0x00, 0x78, 0x66, 0x19, 0x80, 0x03, 0x6c, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xe0, 0x07, 0x80, 0x00, 0x78, 0x66, 0x19, 0x80, 0x1b, 0x6c, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x6c, 
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0
};

void setup()
{
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Активируем дисплей
  display.cp437(true); // 
  display.clearDisplay(); // Очищаем содержимое экрана
  display.drawBitmap(0, 0, logoBmp, 128, 20, WHITE); // Выводим картинку logoBmp c координатами 0,0 и размером 128х20
  display.setTextSize(1); // Устанавливаем размер шрифта (1..3)
  display.setTextColor(WHITE);
  display.setCursor(0,22); // Устанавливаем курсор x=0, y=22
  display.println(utf8rus("Вывод русского текста")); // Используем библиотеку utf8rus для отображения русских букв
  display.setTextSize(2);
  display.setCursor(0,38);
  display.println("TXT2"); // Только английский текст, размер 2
  display.setTextSize(3);
  display.setCursor(54,34);
  display.println("txt3"); // Только английский текст, размер 3
  display.drawLine (0, 63, 128, 63, 1); // Рисуем линию
  display.display(); // Выводим сформированное изображение
}

void loop()
{

}

Скачать

Все необходимые библиотеки включены в проект.

vsp-oled-demo.zip

Купить компоненты

ATMEGA328P-AU UNO R3 (Arduino совместимая)
ATMEGA328P Nano 3.0 CH340G (Arduino совместимая)
OLED дисплей 0.96" 128x64, I2C
Макетная плата 400 точек для Ардуино
Макетная плата MB-102 для Arduino
Соединительный провод DuPont 10 см 40 жил M-M