Библиотека MAX7219, которая может компенсировать плохо спроектированную/неправильно подключенную панель 8x32?
У меня есть этот пример кода:
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define MAX_DEVICES 4
#define CLK_PIN 11
#define DATA_PIN 12
#define CS_PIN 10
MD_Parola P = MD_Parola(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup(void) {
P.begin();
P.print("PPPPPPPP");
}
void loop(void) {
}
И вот как загорается дисплей:
Я предполагаю, что код отображает текст неправильно, потому что производитель дисплея подключил отдельные дисплеи 8x8 «не так, как ожидает любая библиотека» (т. е. красным я обозначил адреса столбцов для моего дисплея, а зеленым — то, какими они должны быть, чтобы эта библиотека правильно отображала текст).
У меня два вопроса:
- Существует ли хорошая графическая библиотека Arduino, которая позволила бы мне программно исправить проблему адресации, характерную для моего дисплея?
- Поскольку в будущем я планирую сделать дисплей 16x64 из 4 таких, то есть ли библиотека, способная сделать это (т.е. иметь вертикальный размер шрифта 12-16 пикселей)?
@user389238, 👍-1
2 ответа
Проблема незначительная. Похоже, библиотека была разработана для немного другого матричного дисплея/проводки.
Посмотрите на библиотеку, она, скорее всего, сопоставляет входной буфер с сегментной/точечно-матричной информацией. Поиграйтесь с этим.
Автор сделал 99% работы за вас. Вам нужно просто закончить последний 1%.
У меня была та же проблема. Это проблема конструкции оборудования. Вероятно, поэтому эти вещи были такими дешевыми на EBAY.
Эти штуки смещают по одному биту за раз по змеевидной схеме. Они были неправильно подключены. Их нужно было подключить так, чтобы отображать биты
1-8 in col 1,
9-16 in col 2,
17-24 in col 3,
25-32 in col 4,
33-40 in col 5,
41-48 in col 6,
49-56 in col 7,
57-64 in col 8.
однако они были запрограммированы на
1-8 in col 8,
9-16 in col 7,
17-24 in col 6,
25-32 in col 5,
33-40 in col 4,
41-48 in col 3,
49-56 in col 2,
57-64 in col 1.
Это можно исправить программно с небольшими проблемами. Чипы, которые они использовали, по сути, являются сдвиговыми регистрами. Но у них нет возможности очищать экран. Вы могли бы использовать некоторые трюки с таймингом, чтобы нарисовать весь дисплей, затем сделать паузу, а затем нарисовать весь дисплей снова. Это единственный способ, которым, как я вижу, можно добиться движения. Вы бы почувствовали быстрое размытие движения между каждым движением. Как правило, нежелательно.
Ни одно программное обеспечение не будет работать должным образом, если не работает оборудование. – Игнасио Васкес-Абрамс 3 декабря 2017 г. в 20:26
- Считывание 10-контактного 7-сегментного (2 цифры) сингла Arduino 1
- Почему светодиоды заметно мерцают?
- Прокрутка слева направо на дисплее MAX7219
- Случайные светодиоды загораются на 10 модулях MAX7219
- Светодиодный матричный модуль FC-16 на базе MAX7219
- MAX7219 и Ардуино
- Можно ли подключить 4 4-разрядных 7-сегментных светодиодных дисплея к одной плате Arduino?
- Использование Bluetooth-терминала Android для изменения предустановленных состояний светодиодных матриц 8x8.