Библиотека u8g2+u8x8 OLED I2C

Блоки вывода текста OLED I2C

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#1

Сообщение DrMario » 06.10.2019{, 05:22}

Всем привет!
Сделал блоки для библиотеки монохромных дисплеев u8g2 и u8x8, которая входит в ее состав. Библиотека Arduino U8g2 может быть установлена ​​из менеджера библиотек IDE Arduino. U8g2 также включает в себя библиотеку U8x8: https://github.com/olikraus/u8g2.
Меня интересовало подключение только по I2C, по этому убрал все лишнее.
Список чипов для библиотеки u8g2:
SSD1306 128X64
SH1106 128X64
SH1107 128X128
SH1107 PIMORONI 128X128
SH1107 SEEED 128X128
SSD1306 128X32
SSD1306 64X48
SSD1306 48X64
SSD1306 64X32
SSD1306 96X16
SSD1327 SEEED 96X96
SSD1327 EA W128X128
LD7032 60X32
ST7567 64X32
ST75256 JLX256X64
ST7588 JLX128X64
UC1611 EA DOGM240
UC1611 EA DOGXL240

В состав проекта должно входить блок ChipSet и блок(и) вывода на дисплей. Библиотека поддерживает два способа вывода на дисплей, это Full Buffer или Page Buffer, по этому необходимо это учитывать в настройках блока чипсет и выборе блоков вывода на дисплей с индексом P или F.

Видео с примера

u8g2 SSD1327 128x128 I2C DrawGlyph Page.flp
Пример рисования символа из таблицы способом Page Buffer
(279.45 КБ) 247 скачиваний
u8g2 SSD1327 128x128 I2C Print Full.flp
Пример печати текста способом Full Buffer
(310.31 КБ) 250 скачиваний
u8g2 SSD1327 128x128 I2C Print Page.flp
Пример печати текста способом Page Buffer
(308.59 КБ) 219 скачиваний
Oled I2C u8g2 Lib.ubl
Все блоки в одном флаконе. Добавлены блоки рисования двумя способами.
(909.79 КБ) 447 скачиваний
===========================
Блоки пользователя библиотеки u8x8 для дисплеев OLED I2C.
Список чипов для библиотеки u8x8:
SSD1306_128X64
SH1106_128X64
SH1107_128X128
SH1107_PIMORONI_128X128
SH1107_SEEED_128X128
SSD1306_128X32
SSD1306_64X48
SSD1306_48X64
SSD1306_64X32
SSD1306_96X16
SSD1327_SEEED_96X96
ST7567_64X32
ST75256_JLX25664
ST7588_JLX12864
UC1611_EA_DOGM240
UC1611_EA_DOGXL240

В состав проекта должно входить блок ChipSet и блок(и) вывода на дисплей.
В списке шрифтов этой библиотеки не смог найти шрифты кириллицы (Русский шрифт).
u8x8 SH1106 128x64 I2C Print1.flp
Пример печати текста, способ 1
(265.25 КБ) 277 скачиваний
u8x8 SH1106 128x64 I2C Print2.flp
Пример печати текста, способ 2
(218.25 КБ) 199 скачиваний
u8x8 SH1106 128x64 I2C DrawString.flp
Пример рисования строки
(235.35 КБ) 200 скачиваний
u8x8 SH1106 128x64 I2C DrawUTF8.flp
Пример рисования строки с кодировкой UTF-8
(231.9 КБ) 182 скачивания
Oled I2C u8x8 Lib.ubl
Все блоки в одном флаконе. Добавлена возможность увеличить скорость I2C.
(279.4 КБ) 301 скачивание
Использование библиотеки u8x8
U8x8 - это небольшой объем памяти и более высокая скорость. Чтобы код работал быстрее, нужно пойти на жертвы.
В этом случае все графические возможности отбрасываются, и все шрифты помещаются в область памяти 8x8. Это делается для того, чтобы не выполнялось никаких вращений битов, что экономит много времени на обработку.
Эта библиотека поставляется с библиотекой u8g2 и предназначена для минимального вывода текста, чтобы сэкономить много памяти и работать немного быстрее. Вы должны использовать библиотеку u8x8, если вам нужно экономить память и требуется только вывод текста.
Режим u8x8 обрабатывает каждую позицию экрана как блок 8x8, поэтому он всегда заполняет этот блок и, следовательно, никогда не нуждается в считывании данных экрана. Это означает, что буфер не требуется, но в то же время никакая графика не может быть использована.
Источник
https://www.best-microcontroller-projec ... d1306.html
Последний раз редактировалось DrMario 07.10.2019{, 14:13}, всего редактировалось 5 раз.

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#2

Сообщение Rovki » 06.10.2019{, 07:40}

С есп8266 будет работать ?
Электронщик до мозга костей и не только

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#3

Сообщение DrMario » 06.10.2019{, 07:44}

На видео как раз ESP8266 WEMOS

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#4

Сообщение Rovki » 06.10.2019{, 08:21}

DrMario писал(а):
06.10.2019{, 07:44}
На видео как раз ESP8266 WEMOS
Что то я не увидел вемоса :smile427: :shok:

Отправлено спустя 1 минуту 43 секунды:
Rovki писал(а):
06.10.2019{, 08:21}
DrMario писал(а):
06.10.2019{, 07:44}
На видео как раз ESP8266 WEMOS
Что то я не увидел вемоса :smile427: :shok: и не понял что нужно менять для олед 128х32, и где прописыаются пины для I2C ???
Электронщик до мозга костей и не только

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#5

Сообщение DrMario » 06.10.2019{, 10:42}

Пины по умолчанию SDA SCL, их прописывать не нужно. Для каждого дисплея есть свой чип, Его нужно прописать в главном блоке ChipSet

Аватара пользователя
Rovki
Полковник
Сообщения: 4872
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#6

Сообщение Rovki » 06.10.2019{, 21:22}

DrMario писал(а):
06.10.2019{, 10:42}
Пины по умолчанию SDA SCL, их прописывать не нужно. Для каждого дисплея есть свой чип, Его нужно прописать в главном блоке ChipSet
Да ,но наверное не у всех есп одинаковые пины...
Электронщик до мозга костей и не только

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#7

Сообщение DrMario » 07.10.2019{, 08:22}

Можно ориентироваться по этому рисунку
Вложения
WeMos D1 R2 Pinout.png

Аватара пользователя
Max
Лейтенант
Сообщения: 691
Зарегистрирован: 06.09.2015{, 13:12}
Репутация: 5
Откуда: Тюмень-Баку
Имя: Максим

Библиотека u8g2+u8x8 OLED I2C

#8

Сообщение Max » 22.10.2019{, 20:13}

Что то библиотека не грузится...
https://imageup.ru/img200/3495619/err1.jpg

Аватара пользователя
DrMario
Лейтенант
Сообщения: 371
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 58
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

Библиотека u8g2+u8x8 OLED I2C

#9

Сообщение DrMario » 22.10.2019{, 20:19}

Библиотеку в Arduino IDE нужно установить самостоятельно через менеджер библиотек в поиске ввести u8g2. Ссылка на саму библиотеку в первом сообщении.

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

Библиотека u8g2+u8x8 OLED I2C

#10

Сообщение vovka1973 » 11.03.2020{, 17:42}

DrMario писал(а):
22.10.2019{, 20:19}
Библиотеку в Arduino IDE нужно установить самостоятельно через менеджер библиотек в поиске ввести u8g2. Ссылка на саму библиотеку в первом сообщении.
Спасибо ! наконец-то что то начало работать с stm32 :smile9:
Изображение

Iqubik
Сержант
Сообщения: 147
Зарегистрирован: 20.01.2020{, 06:10}
Репутация: 20
Откуда: Ставрополь
Имя: Николай

Библиотека u8g2+u8x8 OLED I2C

#11

Сообщение Iqubik » 04.04.2020{, 00:10}

Сделал демо связки espUI Ota wifiman для wemos d1 mini oled shield 0.66 64x48
Нужные либы - viewtopic.php?p=84681#p84681
СпойлерПоказать
Снимок экрана (74).png
Снимок экрана (75).png
wemos_iq_b5_ssd1306_ESPUI_WIFIMANAGER_OTA_NTP.flp
(1.44 МБ) 79 скачиваний

дрон
Рядовой
Сообщения: 94
Зарегистрирован: 09.11.2017{, 19:25}
Репутация: 2
Откуда: Москва
Имя: Андрей

Библиотека u8g2+u8x8 OLED I2C

#12

Сообщение дрон » 07.08.2020{, 12:26}

Здравствуйте DrMario, есть ли возможность сделать такие же блоки, на этой библиотеке, для дисплея 12864 SPI.
В языке программирования не силен, очень большая просьба помочь.
Я думаю многим пригодится.
Чип ST7920_128X64.

дрон
Рядовой
Сообщения: 94
Зарегистрирован: 09.11.2017{, 19:25}
Репутация: 2
Откуда: Москва
Имя: Андрей

Библиотека u8g2+u8x8 OLED I2C

#13

Сообщение дрон » 09.08.2020{, 14:15}

DrMario, пробую сам переделать Ваши блоки, перепробовал как мог, не получается убрать мигания.
ESP32 SPI дисплей 12864 чип 7920.flp
(271.14 КБ) 100 скачиваний
VID_20200809_134855.mp4
(2.62 МБ) 146 скачиваний

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Библиотека u8g2+u8x8 OLED I2C

#14

Сообщение Ingwar » 15.10.2020{, 01:12}

дрон писал(а):
09.08.2020{, 14:15}
перепробовал как мог, не получается убрать мигания.
Переделай блоки примерно так
СпойлерПоказать
Безымянный.png
Вместо входа "New" сделай 2 входа - для очистки и работы.
В случае крайнего дефицита памяти - подкорректируй буфер под чар из расчета пикселей по горизонтали, деленное на кол-во пикселей в шрифте под один символ + расстояние между ними.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

Библиотека u8g2+u8x8 OLED I2C

#15

Сообщение pochabych » 07.11.2022{, 14:17}

Коллеги Энтузиасты добрый день. В другой ветке (viewtopic.php?f=72&t=4316) так же наследил относительно экрана st7920 для esp32. совершенно случайно не появилось готвое решение со кирилическими шрифтами разных размеров и возможностью отражать графику? Очень Ннннадо.
Спасибо.

pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

Библиотека u8g2+u8x8 OLED I2C

#16

Сообщение pochabych » 14.12.2022{, 14:57}

Вот злые вы, но я от вас не уйду. Пришлось день потратить на то чтобы разобраться с блоком для растровой картинки. Итак, представляю вашему вниманию переработанный u8g блок для вывода на экран растровой картинки. Заявленные в блоке размеры картинки 32*32 пикселя. Для смены картинки необходимо отредактировать секцию LoopSelection и заменить все что идет после "static unsigned char u8g2_logo_bits[]PROGMEM = {" на свое изображение. как делается изображение и переводится в необходимый код смотреть тут viewtopic.php?f=72&t=4316#p55013

Ах да, забыл. Библиотека U8g2 имеет поядка сотни экранов по этому указывайте свой экран при инициализации.
Вложения
Вывод_картинки_LCD12864_U8G2_(Code_-_Basic).ubi
(59.9 КБ) 51 скачивание

DownHouse
Рядовой
Сообщения: 25
Зарегистрирован: 04.04.2017{, 14:07}
Репутация: 0

Библиотека u8g2+u8x8 OLED I2C

#17

Сообщение DownHouse » 06.01.2023{, 16:06}

Здравствуйте. Подскажите пож-ста по настройке блоков. Не понимаю, что куда подставлять. В итоге при компиляции ошибка
Вложения
Снимок экрана_20230106_160020.png

pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

Библиотека u8g2+u8x8 OLED I2C

#18

Сообщение pochabych » 08.01.2023{, 21:57}

Проверьте установлены ли библиотеки u8g2 adafruit... используемый вами шрифт есть в виблиотеке.

DownHouse
Рядовой
Сообщения: 25
Зарегистрирован: 04.04.2017{, 14:07}
Репутация: 0

Библиотека u8g2+u8x8 OLED I2C

#19

Сообщение DownHouse » 14.01.2023{, 10:16}

Iqubik писал(а):
04.04.2020{, 00:10}
Проверьте установлены ли библиотеки u8g2 adafruit... используемый вами шрифт есть в виблиотеке.
Да, библиотеку установил. Пробовал пример автора. Скриншот как раз из его примера.

Отправлено спустя 1 минуту 1 секунду:
Может дело в версии библиотеки.

pochabych
Рядовой
Сообщения: 37
Зарегистрирован: 09.11.2021{, 15:12}
Репутация: 3
Имя: Денис

Библиотека u8g2+u8x8 OLED I2C

#20

Сообщение pochabych » 14.01.2023{, 11:24}

Пример приложите будем разбираться, а то мои способности Ванги протухли в прошлом году.

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»