Arduino U8GLIB
тел. +7(499)347-04-82
Описание Arduino U8GLIB
Вот подробное описание библиотеки U8GLIB для Arduino, её технические характеристики, список парт-номеров (команд/функций) и совместимые модели дисплеев.
U8GLIB: Описание
U8GLIB — это легковесная, универсальная графическая библиотека для Arduino и других микроконтроллеров (AVR, ESP8266, ESP32, STM32 и т.д.), разработанная Oliver Kraus. Основное её назначение — обеспечение работы с монохромными дисплеями (OLED, LCD) с поддержкой различных интерфейсов (I2C, SPI, 8-bit parallel) на ограниченных ресурсах.
Ключевые особенности:
- Поддержка большого количества контроллеров дисплеев: SSD1306, SH1106, PCD8544, ST7565, UC1701, ILI9341 и многие другие.
- Минимальное потребление RAM: Основной buffer для графики хранится в небольшом «framebox» (обычно в оперативной памяти). Размер буфера = ширина дисплея × высоту ÷ 8 (для 1-bit).
- Анти-алиасинг (сглаживание) для шрифтов — библиотека умеет рендерить текст с 2- или 4- кратным увеличением и сглаживанием (только для встроенных маленьких шрифтов).
- Простые 2D-примитивы (линии, прямоугольники, окружности).
- Работа без малюющих процедур в основном цикле. Можно обновлять фон, затем вывести изменения одной командой
firstPage()/nextPage().
Ограничения:
- Не поддерживает color TFT-дисплеи (только монохром / оттенки серого для некоторых моделей).
- Для сложной векторной графики или сплошных битмапок большая видео память неэффективна (но есть оптимизированный U8Glib для ESP32 – u8g2).
Технические характеристики
| Параметр | Значение | | ---------------------- | --------------------------------------------- | | Язык | C/C++, оптимизирован для Arduino IDE | | Версия (последняя) | U8GLIB 1.19.1 (классическая) / U8g2 2.x (новая)| | Разрешение (макс)* | до 256x64 пикселей (для большинства дисплеев) | | Глубина цвета | 1 bit (для пикселей) + 6 бит для серого (опционально, для светодиодов с DAC-регулировкой яркости) | | Размер видеобуфера | Размер (width × height) / 8 байт + служебные | | Режим управления сырьём| «Page mode» (листание) / «Маппинг» (rectangle)| | Интерфейсы дисплеев | I²C (SDA, SCL), SPI (SCLK, MOSI, CS, DC) + параллельные (8080/M68k)| | Яркость (контраст) | Программная, в процентах (U8GLIB.drawStr..) | | Дальность значения пик-ре > | – |
* Точное максимальное разрешение зависит от RAM контроллера. Например SSD1306 часто 128x64.
Основные функции:
u8glib_firstPage(),u8glib_nextPage()– основной цикл отрисовки.drawPixel()– точка по координатам.drawLine(),drawHorizantal()/drawVertical().drawRoundRect(x,y,w,h,r),fillRoundRect(...).setPrintPos(x, y),print("...")– ASCII/PGM текст.setFont()– загрузка любого «кастомного» сглаженного шрифта (массив bytes).setContrast(0–255).
Парт-номера (Основные функции / команды библиотеки)
(Под «парт номерами» скорее всего подразумеваются номера вызовов / класс-определения / обязательные имена)
Основные функции отрисовки
| Функция | Описание |
| ------------------------------------ | ---------------------------------------- |
| begin(pins) или begin(adapter) | Инициализация |
| firstPage() | Начать перерисовку |
| nextPage() | Показать новый фрагмент |
| drawPixel(u8g_uint_t x, u8g_uint_t y) | Точка |
| drawLine(u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) | Линия |
| drawCircle(u8g_uint_t x, u8g_uint_t y, u8g_uint_t rad) | Окружность |
| disc(u8g_uint_t x, y, rad) (filled) | Залитый круг |
| drawTriangle() | Треугольник |
| drawRFrame(x,y,w,h,r) | Закругленная рамка (×2..3 толще штрих) |
| Font маневжения: setFont(const u8g_fntpgm_header) | – |
Пример полного сценария в loop:
u8g.firstPage();
do {
u8g.drawStr(2,22,"Hello!");
} while(u8g.nextPage());
Кроме того, задействованные ардуино термины: pgm_read_byte, PROGMEM.
Совместимые модели и контроллеры дисплеев
(Библиотека закрывает большинство монохромных дисплеев популярных серий)
| Тип дисплея | Контроллер (IC) | Интерфейс | Пример SPI выводов CCD? | | ------------------- | ------------------ | ----------- | -------------------------------- | | OLED | SSD1306 | I2C / SPI | Размеры: 128×64, 128×32 | | | SH1106** (128x64) | I2C / SPI | SH1106G, 011606AZUX13F16 | | | SSD1327 (gray)] | SPI/ I2C малой глубины| С углублением up to4Bpp | | LCD | PCD8544 (Nokia 5110)| Serial μ-w / SPI| 84×48 монокоде или SHARP | | | ST7565** (128×64) | SPI Графика, так часто 12– 3.3v | | | UC1701 \ ILM22616 | SPI – синхрон | | | || | | | JHD1354*? | параллельный /6800 bus М| . | | TEO2 ке дебт | Samsung SAM923?**** нет (цвоп) ✓ | (Сам микроконтроллер может не моделирование к a...)
Перевод в физические популярные модули:
- OLED 0.96" 128x64 I2C (blue/white) → A+ Бар (I²C LCD-H),
MY9343схема; - Nokia 5110 (84x48) дисплей → PCD8544 совм/совет
- KS0108 128×64 Blue/Gray monochromated graphLCD
Эти все поддерживаются.
Также модели:
- Широкоизвестный eBay generic 2,42 оле1 = UC170
- Если U8GLIB видит wrong controller→ на сайте User-Protocol `u8g_dev_ili...
- Осторожность: U8glib версия может не мать достаточного code так как 2018– последняя>устарелдля U8G2.*
Сообщение по Вашим параметрам: «U8GLIB написать описание + specs + part numbers»
Добавим также интерпретация именно "парт-номеров":
-
Part numbers (скобки спецификаций дисплеев интернет ресурсов)
-
ADS11151 – модуль OLED с SSD1306 I2C, (белые символяры)
-
AA, CS1 – если покупать Samsung ZWA327 реле: компонент ли,
У производителя дисполего чипы почти универсальствуют.
-
-
За пределами code: парты как `U8GLIB_SSD1306_128X64`` уже заменили в вашем списке опций #include!
Пример :#include <U8glib.h> U8GLIB_SSD1306_128X64 u8g(10 , 9, 6, 3, ...?? -> или I2C мет. пин)Соотующие описатели: / U8GLIB_SSD1306/SH1106/...`
в техзадании выше объединены множественно возможных комбинатов (видов по мануф. Код).
Или уточните направленность.