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

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

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

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

Для того, чтобы выполнить этот урок нам понадобиться.

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • 0.91 Oled дисплей
  • Кабель USB

OLED дисплей

Будем использовать небольшой дисплей уже готовый для подключения к Ардуино. Плата имеет 4 контакта для подключения к Ардуино. И не требует дополнительной обвязки или подключения 12 пинов к плате.

Что такое OLED

OLED означает «Organic-Light-Emitting-Diodes» (англ. «органический светодиод»). Суть технологии состоит в том, что каждый пиксель дисплея представляет собой отдельный источник света. Большой размер пикселя позволяет получить гораздо более высокое разрешение, плотность пикселей и, следовательно, качество изображения.

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

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

Программа

Для программы нам понадобится библиотека 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(0,32,»*»)
u8g2.drawStr(100,32,"*")
u8g2.drawStr(100,32,»*»)

Цикл

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

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>

U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); 

void setup(void) {
   u8g2.begin();
}
void loop(void) {
  for(int x = 0; x <= 100; x++){
   u8g2.clearBuffer();
   u8g2.setFont(u8g2_font_logisoso28_tr);
   u8g2.drawStr(x,32,"*");
   u8g2.sendBuffer();
   delay(10);
  }
}
Движение символа по экрану
Движение символа по экрану

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

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>

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) {
}

Заключение

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

Где купить

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

Ваш адрес email не будет опубликован.