Библиотека u8g2 (бывшая u8glib) позволяет выводить на дисплей текстовую информацию. Большой выбор шрифтов и большое количество поддерживаемых дисплеев делает эту библиотеку наиболее популярной.
Для начала рассмотрим подключение дисплея OLED 0.91 inch 128*32 к ARDUINO. Для подключения потребуется всего 4 провода: GND, 5V, SCL (Clock Line) и SDA (Data Line)
В моем случае используются:
- версия программы ARDUINO 1.8.13
- плата ARDUINO UNO
- дисплей OLED 0.91 inch 128*32
- библиотека u8g2
Если у вас не установлена эта библиотека, то ее нужно установить. Пункт меню ИНСТРУМЕНТЫ - УПРАВЛЯТЬ БИБЛИОТЕКАМИ. Далее найти и установить u8g2
Я нашел в интернете самый простой скетч и слегка переработал его, чтобы понять возможности вывода текста на экран.
Работу скетча описал в комментариях
#include <Arduino.h> #include <U8g2lib.h> #include <SPI.h> #include <Wire.h> U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); // описание OLED 0.91 inch 128*32 void setup(void) { u8g2.begin(); } void loop(void) { u8g2.clearBuffer(); // очищаем буфер u8g2.setFont(u8g2_font_cupcakemetoyourleader_tr); // выбираем красивый шрифт u8g2.drawStr(0, 29, "D.A.CHOCOLATE"); // начальная позиция и текст u8g2.sendBuffer(); // отправляем в буфер delay(2000); // пауза for (int i = 0; i < 250; i++) { // добавляем цикл для эффекта бегущей строки u8g2.clearBuffer(); u8g2.setFont(u8g2_font_bubble_tr); // еще один красивый шрифт u8g2.drawStr(125-i, 29, "FANYA"); // горизонтальная позиция меняется от 125 до -125 u8g2.sendBuffer(); delay(20); // этой паузой задается скорость } u8g2.clearBuffer(); u8g2.setFont(u8g2_font_tenstamps_mf); // еще один красивый шрифт u8g2.drawStr(15, 29, "Little"); u8g2.sendBuffer(); delay(1500); u8g2.clearBuffer(); u8g2.setFont(u8g2_font_heavybottom_tr); // еще один красивый шрифт u8g2.drawStr(32, 29, "Red Rat"); u8g2.sendBuffer(); delay(2000);Посмотреть и выбрать шрифты можно по ссылке https://github.com/olikraus/u8g2/wiki/fntlistall
Шрифты отсортированы по размеру. Слева образец. Копируем название нужного шрифта и вставляем в скетч. Можно найти шрифты с русскими буквами, шрифты с символами (заряд батареи, уровень сигнала и т.п.)
Также в скетче указывается позиция вывода текста
u8g2.drawStr(32, 29, "Red Rat");
Как видно на фото, сначала указывается горизонтальная позиция (слева направо), затем вертикальная (сверху вниз). Значения могут выходить из диапазона 128*32. За счет этого у меня реализована бегущая строка. При отрицательных значениях текст начинается с позиции за видимой частью дисплея.
Для отображения нескольких строк делаем следующие:
u8g2.clearBuffer(); u8g2.setFont(u8g2_font_tenstamps_mf); u8g2.drawStr(15, 16, "Line 1"); u8g2.drawStr(15, 32, "Line 2"); u8g2.sendBuffer(); delay(4500);
В следующий раз я напишу как выводить на этот дисплей графическую информацию.
На этом все. Спасибо всем за внимание. Если вам помогла эта статья, можете сказать мне спасибо просто посмотрев рекламу :)