Как подключить олед дисплей к ардуино
Перейти к содержимому

Как подключить олед дисплей к ардуино

  • автор:

Arduino и OLED дисплей

Набор GyverKIT комплектуется графическим OLED дисплеем:

  • Разрешение: 128×64 пикселя
  • Диагональ: 0.96″
  • Контроллер: SSD1306
  • Подключение: I2C

Подключение

Модуль подключается на шину I2C и питание, как и любой другой модуль такого типа:

Библиотеки

Для данного дисплея существует несколько библиотек:

  • u8glib – мощная, но очень тяжёлая библиотека от olikraus
  • Adafruit_SSD1306 – библиотека от adafruit
  • GyverOLED – наша библиотека. Очень лёгкая и быстрая, поддерживает русский шрифт

В примерах на этом сайте мы будем использовать GyverOLED. Библиотека идёт в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию GyverOLED . Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.

Примеры

Библиотека имеет два режима работы: с буфером и без буфера:

  • С буфером: занимает больше оперативной памяти, но позволяет выводить новые данные с наложением на старые. Требует вызова update() для применения изменений. Инициализация: GyverOLED oled;
  • Без буфера: на дисплей сразу выводится указанная графика, заменяя текущее отображение. Инициализация: GyverOLED oled;

Библиотека умеет делать print() любых типов данных и текста. Позицию вывода можно установить двумя способами:

  • setCursor(x, y) – пиксель по горизонтали (0.. 127), строка по вертикали (0.. 7). Одна строка – 8 пикселей
  • setCursorXY(x, y) – пиксель по горизонтали (0.. 127), пиксель по вертикали (0.. 63)

Остальные возможности смотри в документации и встроенных примерах.

Домашнее задание

  • Изучить документацию на GyverOLED
  • Загрузить примеры

OLED дисплей. Урок 21. Ардуино

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

Привет! Мы знаем как выводить служебную информацию из нашей программы на Ардуино. С помощью монитора последовательного порта мы можем следить за выполнением программы. Но что если нам нужно выводить некую информацию для пользователя нашего устройства? Например погоду или показания других датчиков. В этом нам поможет OLED дисплей. Давайте попробуем настроить его в простом проекте для Ардуино.

В прошлый раз мы подключили 6 кнопок на один пин Ардуино. Как это возможно? Посмотрите предыдущий урок, если уже забыли или пропустили.

Принципиальная схема подключения дисплея

Программа

Для программы нам понадобится библиотека U8g2lib.h Установить ее как всегда очень просто. Она есть в менеджере библиотек.

И с помощью класса из библиотеки мы можем управлять поведением экрана всего лишь несколькими функциями.

u8g2.clearBuffer() — очищает буфер памяти
u8g2.setFont(u8g2_font_logisoso28_tr) — устанавливает шрифт
u8g2.drawStr(0,32,»1″) — записывает текст в буфер памяти
u8g2.sendBuffer()
— выводит текст из буфера на экран

u8g2.drawStr

Функция u8g2.drawStr() — записывает текст или символы в память для последующего вывода на экран. Первые два параметра устанавливают расположение символа на экране и его высоту.

u8g2.drawStr(0,32, u8g2.drawStr(100,32,

Цикл

Так же легко выполнить простую анимацию текста, двигающийся текст или расположить большой текст на экране и включить прокрутку. Но пока что ограничимся маленькой плавающей снежинкой.

#include #include #include #include U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); void setup(void) < u8g2.begin(); >void loop(void) < for(int x = 0; x >

Полный текст программы

#include #include #include #include U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); void setup(void) < u8g2.begin(); u8g2.clearBuffer(); u8g2.setFont(u8g2_font_logisoso28_tr); u8g2.drawStr(100,32,"1"); u8g2.sendBuffer(); >void loop(void)

Заключение

Таким образом мы можем подключить дисплей для вывода информации к любому проекту на Ардуино. Будем использовать его в наших будущих проектах.

Как подключить олед дисплей к ардуино

Информация о материале Создано: 08 сентября 2017

В этой статье будем подключать OLED дисплей 1.3 дюйма. В отличии от дисплея на 0.96″, этот использует другую библиотеку для корректной работы.

Нам понадобится:

  1. OLED графический дисплей 1.3″ (128×64, I2C)
  2. Arduino UNO R3 (ch340) или аналогичные
  3. Библиотека U8glib

Подключение

  1. Соединяем проводками дисплей с ардуиной:
    GND — GND;
    VCC — V3.3 (можно и 5В);
    SCL — A5;
    SDA — A4;

Запуск

  1. Распаковаем библиотеку U8glib в папку Library
  2. Открываем пример в верхнем меню Файл -> Образцы -> U8glib -> GraphicsTest
  3. Находим строку //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI и раскоментируем её, должно получиться вот так: U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI
  4. Загружаем в ардуину и наслаждаемся

Комментарии

+13 # Михаил 14.12.2017 11:14

Если получаем вертикальную полосу и сдвиг изображения — вместо 1306 включаем в конструкторе 1106 и наслаждаемся.
Для более современной библиотеки u8g2 конструктор выглядит примерно так:
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

+4 # Андрей 05.03.2019 18:42

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

Подключение дисплея oled i2c к Arduino

Главным плюсом 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 к Ардуино

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); >
Пояснения к коду:
  1. библиотека использует много оперативной памяти микроконтроллера для загрузки шрифтов, поэтому работать с OLED дисплеем на плате Arduino Nano не получится. Скетч не загрузится из-за нехватки свободной памяти;
  2. ещё больше возможностей библиотеки можно узнать из стандартных скетчей.

Стандартные скетчи библиотеки OLED_I2C.h Arduino IDE

Еще одна библиотека, которая позволяет работать с дисплеем 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 display.setCursor(20, 10); display.println(i); display.display(); delay(100); display.clearDisplay(); // очищаем экран > >
Пояснения к коду:
  1. адрес устройства — 0x3C, можно узнать с помощью программы для сканирования шины I2C микроконтроллера Ардуино;
  2. 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 print("GHBDTN!", CENTER, i); myOLED.update(); delay(5); myOLED.clrScr(); // очищаем экран OLED > >
Пояснения к коду:
  1. переменная i в цикле for меняет положение надписи в строке от 128 до -40 пикселей (если надпись будет длиннее то нижний диапазон нужно увеличить);
  2. минусом библиотеки является то, что некоторые символы будут тоже переводиться в русские буквы, например, «точка» превратится в букву «ю».

Заключение. Мы постарались наиболее полно рассмотреть схему подключения OLED 0,96 к Ардуино и разобрать команды библиотек для экрана. Рассказать обо всех возможностях работы с OLED в одном обзоре довольно сложно. Вы можете изучить эту информацию на основе примеров из архива с библиотеками самостоятельно. Если у вас остались вопросы по теме — пишите их в комментариях к этой записи.

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

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