Каталог
|
Українізація бібліотеки Adafruit_GFX_Library для матриць MAX7219 та LCD2022-09-30 Все статьи →Для виводу текстової інформації на саморобний блок світлодіодних матриць з загальним анодом в середовищі Arduino рідною мовою я стикнувся з проблемою, що та бібліотека LedContorl, якою я зазвичай користуюсь, неспроможна здійснити обертання на заданий кут (мені потрібно було на 90 градусів) зображення при виводі на матриці, причому обертання необхідно здійснити для кожної матриці окремо, а не для всього блоку. В результаті пошуку альтернативи я обрав бібліотеку Max72xxPanel, яка, використовуючи ресурси Adafruit_GFX_Library в якості джерела шрифту, спроможна на потрібну мені дію. Оскільки Adafruit_GFX_Library може бути використана також для роботи з величезним спектром найрізноманітніших дисплеїв (список за адресою) було вирішено ЇЇ "українізувати", оскільки русифікація давно та успішно виконана. В цілому це: встановлення бібліотеки в середовище Arduino, заміна файлу шрифту glcdfont.c на скоригований, а також "перекодування", а точніше "переадресування" символів з кодування UTF-8 (специфічного до Arduino) в Windows-1251 в скетчі, який включає в себе всі символи кириличної абетки. Загалом це все. Далі я приведу тестовий скетч, що дозволяє виводити на блок світлодіодних матриць привітання, а також три абетки - українську, російську та англійську. Скетч добре коментований, на його основі я зробив "текстовий" годинник з двома будильниками та індикацією температури та вологості, з текстовою індикацією режимів налаштувань, та рухомими рядками дати та часу налаштування будильників. Він поєднує статичне та динамічне відображення інформації ресурсами бібліотек Adafruit_GFX_Library та Max72xxPanel. Далі я приведу заголовок скетчу українською, оскільки в самому скетчі він російською. Скетч писав я сам, можу відповісти на всі питання, якщо в них маю хоч якусь компетенцію. З повагою Коваленко С. м. Кременчук. Тестовий скетч виведення української та російської абетки на світлодіодну матрицю з драйвером MAX7219. Для коректної роботи необхідно замінити в папці бібліотеки Adafruit_GFX_Library оригінальний файл glcdfont.c наданим, він має модифіковані кодування символів. У скетчі виключений delay, дуже вже я його не люблю... У прикладі використані матриці із загальним анодом та схемою підключення на відміну від оригінальної конструкції, де покупні матриці із загальним катодом. Для їхньої коректної роботи потрібне інше підключення, ніж для матриць із загальним катодом:
Попри те, що геометрично матриці з ЗА в блоці розташовані аналогічно з матрицями з ЗК, для їх нормального функціонування необхідний програмний поворот 90 градусів. Бібліотека LedControl, що зазвичай застосовується для керування драйверами MAX7219, цього робити не вміє. Скетч - з використанням зв'язки бібліотек Adafruit_GFX та Max72xxPanel. Трохи про адресацію позиції точки на дисплеї. Нульовим відліком (X=0 та Y=0) прийнятий верхній лівий кут злитого масиву матриць при X - координата по горизонталі (у прикладі від 0 до 47), Y - координата по вертикалі (від 0 до 7). Виходячи з цього розраховувати місце розташування кожного елемента відображення, чи то точки, чи символу. Необхідно врахувати, що символи мають ширину 5+1 (для пропуску). Все вищевикладене - для реалізації інформера: годинник, термометр, будильник тощо. Для покупних блоків матриць закоментувати рядки 106-111 і цілком можливо - змінити 115-120. Посилання:
Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Андрій
08.09.2023 13:12:58
Дуже дякую.
Biktop
20.05.2023 10:49:07
Дуже дякую. Давно хотів це зробити, та руки не доходили розібратись.
Viktor Majskiy
27.11.2022 14:51:05
Дуже добре та актуально! щиро дякую!
Andrii
01.10.2022 11:15:23
Похвала автору
|