Arduino U8GLIB

Arduino U8GLIB
Артикул: 2503011

производитель: Arduino
Требуется установка или ремонт?

сервисный центр Kypidetali!

тел. +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»

Добавим также интерпретация именно "парт-номеров":

  1. Part numbers (скобки спецификаций дисплеев интернет ресурсов)

    • ADS11151 – модуль OLED с SSD1306 I2C, (белые символяры)

    • AA, CS1 – если покупать Samsung ZWA327 реле: компонент ли,

      У производителя дисполего чипы почти универсальствуют.

  2. За пределами code: парты как `U8GLIB_SSD1306_128X64`` уже заменили в вашем списке опций #include!
    Пример :

    #include <U8glib.h>  
    U8GLIB_SSD1306_128X64 u8g(10 , 9,  6, 3, ...?? -> или I2C мет. пин)
    

    Соотующие описатели: / U8GLIB_SSD1306/SH1106/...`

в техзадании выше объединены множественно возможных комбинатов (видов по мануф. Код).

Или уточните направленность.

Совместимые модели для Arduino U8GLIB

Arduino U8GLIB