Шановні друзі!
26 та 31 грудня магазин працюватиме до 16 години. 1 та 2 січня магазин працювати не буде.
Вітаємо всіх з Різдвом та Новим Роком!
Мобільна версія Форум Arduino Документація Гарантійні умови 0 0
UA RU
Графік роботи магазину:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Нд: вихідний
Каталог
Напиши статтю і отримай знижку!

Українізація бібліотеки Adafruit_GFX_Library для матриць MAX7219 та LCD

2022-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, дуже вже я його не люблю... У прикладі використані матриці із загальним анодом та схемою підключення на відміну від оригінальної конструкції, де покупні матриці із загальним катодом. Для їхньої коректної роботи потрібне інше підключення, ніж для матриць із загальним катодом:

MAX7219MAX72192088AS2088BS
(номер)(ім'я)(ОК)(ОА)
3DIG 416
5DIG 6215
14SEG A32
16SEG B47
8DIG 7516
23SEG D612
10DIG 5711
6DIG 284
2DIG 0913
20SEG C101
21SEG E118
7DIG 31210
22SEG DP135
11DIG 1143
15SEG F1514
17SEG G169




19VCC
4, 9GND
1DIN
12CS (LOAD)
13CLK
24DOUT

Попри те, що геометрично матриці з ЗА в блоці розташовані аналогічно з матрицями з ЗК, для їх нормального функціонування необхідний програмний поворот 90 градусів. Бібліотека LedControl, що зазвичай застосовується для керування драйверами MAX7219, цього робити не вміє. Скетч - з використанням зв'язки бібліотек Adafruit_GFX та Max72xxPanel. Трохи про адресацію позиції точки на дисплеї. Нульовим відліком (X=0 та Y=0) прийнятий верхній лівий кут злитого масиву матриць при X - координата по горизонталі (у прикладі від 0 до 47), Y - координата по вертикалі (від 0 до 7). Виходячи з цього розраховувати місце розташування кожного елемента відображення, чи то точки, чи символу. Необхідно врахувати, що символи мають ширину 5+1 (для пропуску). Все вищевикладене - для реалізації інформера: годинник, термометр, будильник тощо. Для покупних блоків матриць закоментувати рядки 106-111 і цілком можливо - змінити 115-120.


Посилання:

Ваша оцінка статті:

Відмінно
Добре
Задовільно
Погано
Дуже погано

Загальна оцінка:

Оцінка "Українізація бібліотеки Adafruit_GFX_Library для матриць MAX7219 та LCD"
5 з 5
зроблена на основі 4 оцінок 4 клієнтських відгуків.

Дякуємо Вам за звернення! Ваш відгук з'явиться після модерації адміністратором.
Андрій
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
Похвала автору
оплата картами Visa і MasterCard