U8G2Lib: olikraus/u8g2: U8glib library for monochrome displays, version 2

Работа OLED 0.91 inch 128*32 с библиотекой u8g2 (бывшая u8glib) (LRR 0.91 inch)

   

 Библиотека 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);



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

    На этом все. Спасибо всем за внимание. Если вам помогла эта статья, можете сказать мне спасибо просто посмотрев рекламу 🙂

U8g2 — Библиотеки Arduino

Автор
Оливер
Веб-сайт
https://github. com/olikraus/u8g2
Гитхаб
https://github.com/olikraus/U8g2_Arduino
Категория
Дисплей
Лицензия
BSD 2 Пункт
Тип библиотеки
Добавлено
Архитектуры
Любые

Монохромный LCD, OLED и eInk Library. Контроллер дисплея: SSD1305, SSD1306, SSD1309, SSD1312, SSD1316, SSD1318, SSD1320, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, Sh2106, Sh2107, Sh2108, Sh2122, T6963, RA8835, LC7981, PCD8544, PCF8812, UC1601, UC1160 608, UC1610, UC1611 . 102, Т7932, СЭД1520, СБН1661 , ИЛ3820, МАКС7219, ГП1287, ГП1247, ГУ800. Интерфейсы: I2C, SPI, параллельный. Особенности: UTF8, >700 шрифтов, вывод символов U8x8.

Имя файла Дата выпуска Размер файла
U8g2-2.33.15.zip 2022-09-04 10,48 МБ
U8g2-2. 32.15.zip 2022-04-03 10,50 МБ
U8g2-2.31.2.zip 20.09.2021 10,25 МБ
U8g2-2.31.1.zip 2021-09-19 10,25 МБ
U8g2-2.30.1.zip 2021-09-07 10,15 МБ
U8g2-2.29.11.zip 2021-09-03 10,14 МБ
U8g2-2.28.10.zip 2020-12-28 10,07 МБ
U8g2-2.27.6.zip 2020-01-27 10,03 МБ
U8g2-2.26.14.zip 2019-06-30 8,91 МБ
U8g2-2.25.10.zip 2019-02-09 8,86 МБ
U8g2-2. 24.3.zip 2018-10-28 8,45 МБ
U8g2-2.23.18.zip 2018-08-24 8,44 МБ
U8g2-2.22.18.zip 2018-04-30 8,33 МБ
U8g2-2.21.8.zip 2018-02-18 7,35 МБ
U8g2-2.20.13.zip 2017-12-09 4,44 МБ
U8g2-2.19.8.zip 2017-10-13 4,42 МБ
U8g2-2.18.13.zip 2017-09-30 4,00 МБ
U8g2-2.17.11.zip 2017-09-10 4,00 МБ
U8g2-2.16.9.zip 2017-08-12 3,94 МБ
U8g2-2. 15.2.zip 2017-05-21 3,57 МБ
U8g2-2.14.7.zip 2017-03-11 3,52 МБ
U8g2-2.13.5.zip 2017-02-07 3,51 МБ
U8g2-2.12.6.zip 2017-01-15 3,40 МБ
U8g2-2.11.4.zip 2017-01-08 3,39 МБ
U8g2-2.11.2.zip 3,39 МБ
U8g2-2.10.1.zip 2016-12-30 3,37 МБ
U8g2-2.9.2.zip 2016-12-23 3,36 МБ
U8g2-2.9.1.zip 20.12.2016 3,36 МБ
U8g2-2. 8.5.zip 2016-12-12 3,35 МБ
U8g2-2.8.4.zip 2016-12-11 3,35 МБ
U8g2-2.7.5.zip 2016-11-28 3,34 МБ
U8g2-2.6.3.zip 3,32 МБ
U8g2-2.5.2.zip 3,31 МБ
U8g2-2.4.1.zip 1,87 МБ
U8g2-2.3.2.zip 1,87 МБ
U8g2-2.2.7.zip 914,72 КиБ
U8g2-2.1.5.zip 1,86 МБ
U8g2-2.0.7.zip 1,71 МБ
U8g2-2. 0.6.zip 1,69 МБ

Arduino Oled Проблема U8G2Lib – Поддержка Simhub – SimHub Forum

Поддержка Simhub

6
Сообщения

4
Пользователи

0
Нравится

1353
Взгляды

Merlin2k

(@merlin2k)

Новый пользователь

Присоединился: 2 года назад

Сообщений: 4

Автор темы
12.08.2020 17:13

 Здравствуйте, я хотел бы использовать SimHub с светодиодами oled и ws2812b.  
Поскольку мой oled, вероятно, безымянный, я получаю только пиксельный салат.
Теперь я прочитал, что вы должны использовать U8g2lib.
С файлом примера библиотеки я могу без проблем использовать свой дисплей. К сожалению, я не знаю, как изменить код в Arduino для этого. Было бы здорово, если бы кто-нибудь мог мне помочь привет Миша

Wotever

(@admin5435)

Illustrious Member Admin

Присоединился: 6 лет назад

Сообщения: 701

12.08.2020 17:26

Какую плату Arduino вы используете? Если вы используете nano или аналогичный, у вас может не хватать памяти, как указано в вики:
https://github.com/SHWotever/SimHub/wiki/Arduino-SSD1306-0.96»-Oled-I2C#restrictions

Можете ли вы также проверить, что вы используете модуль SSD1306? Боюсь, смена библиотеки — непростая задача.

Merlin2k

(@merlin2k)

Новый пользователь

Присоединился: 2 года назад

Сообщений: 4

Автор темы
12. 08.2020 18:09

Привет, используйте mega 2560 pro mini.

олэд это Ш2106. вот почему мне нужна другая библиотека

Merlin2k

(@merlin2k)

Новый пользователь

Присоединился: 2 года назад

Сообщений: 4

Автор темы
12.13.2020 10:28

ОК. купил мне дисплей SSD1306. Теперь это работает. А жаль, хотелось бы поставить побольше. еще один вопрос, можно ли настроить то, что отображается на oled? и можно ли повернуть экран?
В настоящее время F1 отображается на oled передач и скорости. хотелось бы только скорость поверх полного дисплея

 

спасибо

ryanaukes

(@ryanaukes)

Новый пользователь

Присоединился: 1 год назад

Сообщений: 3

23.02.2022 20:44

@merlin2k

 

Привет, ты узнал, как повернуть OLED-дисплей? Я тоже хочу это сделать.

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

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