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

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

  • автор:

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

Информация о материале Создано: 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

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)

Заключение

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

OLED I2C 128 x 64 px – схема подключения к Arduino

OLED I2C 128 x 64 px – схема подключения к Arduino

В небольших устройствах тоже бывает нужно вывести какую-либо полезную информацию, сохраняя компактные габариты. Обычные экраны, вроде Nokia 3310, не обеспечивают достаточного разрешения, к тому же их не видно в темноте. В различных плеерах, электронных сигаретах и прочем давно уже используют компактные OLED-дисплеи с большим для их габаритов разрешением – так чем наши проекты хуже?

Краткий обзор модуля

OLED-экраны на базе контроллера SSD1306 популярны благодаря простому подключению, относительно низкой цене и высокому разрешению – для экрана диагональю 0.96 дюйма разрешение составляет аж 128×64! У того же Nokia 3310 разрешение составляет 84×48 пикселей при диагонали 1.5”.

Важным плюсом OLED-экранов является работа без подсветки – каждый пиксель – сам себе подсветка. За счёт такой системы, экран потребляет крайне мало тока (фактически, его можно запитать от пина Arduino). Есть и один минус – при постоянном использовании отдельные пиксели начинают выгорать и терять яркость, но до наступления этого состояния вы успеете отладить и вывести всё, что только можно.

OLED I2C дисплей 1.3' для Arduino

Дисплей подключается по высокоскоростному интерфейсу I2C (относительно высокоскоростному – до 400Кбод) и использует всего 2 сигнальных провода. Это ещё один неоспоримый плюс! Несмотря на то, что интерфейс последовательный, да ещё и данные в обе стороны идут по одной линии, на рядовой Arduino можно достичь порядка 15-20fps, чего более чем достаточно для проектов.

Стоит заметить, что дисплей монохромный – цветные картинки на него не выведешь, а для текста или графика хватит и двух цветов.

Схема подключения

Всего у дисплея 4 пина – VCC, GND, SDA, SCL. VCC и GND подключаются к VCC и GND Arduino соответственно (чтобы перестраховаться, лучше питать дисплей от пина 3.3В – не на всех модулях стоят понижающие преобразователи), а линии данных находятся у каждой версии Arduino на разных пинах. У Uno (Nano, Pro Mini и других платах на ATMega328/168) SDA – A4, SCL – A5. У Mega – SDA – 20, SCL – 21.

На платах 3 ревизии контакты интерфейса выведены перед 13 пином на гребёнке и подписаны соответственно.

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

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