светодиодные матрицы 8х8 работа с библиотеками Adafruit_GFX.h и Max72xxPanel.h
- Войдите на сайт для отправки комментариев
Здравствуйте , я начинающий - прошу помощи тех кто работал с этими матрицами (фото во вложении) или им подобными (например 4 таких модуля одной планкой) через библиотеки Adafruit_GFX.h и Max72xxPanel.h .
С библиотекой Max72xxPanel.h есть пример - ticker - выводит бегущей строкой слово arduino
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>
int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI )
int numberOfHorizontalDisplays =1;
int numberOfVerticalDisplays = 8;
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
String tape = "Arduino";
int wait = 20; // In milliseconds
int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels
void setup() {
matrix.setIntensity(7); // Use a value between 0 and 15 for brightness
// Adjust to your own needs
// matrix.setPosition(0, 0, 0); // The first display is at <0, 0>
// matrix.setPosition(1, 1, 0); // The second display is at <1, 0>
// matrix.setPosition(2, 2, 0); // The third display is at <2, 0>
// matrix.setPosition(3, 3, 0); // And the last display is at <3, 0>
// ...
// matrix.setRotation(0, 2); // The first display is position upside down
// matrix.setRotation(3, 2); // The same hold for the last display
matrix.setRotation(3);
}
void loop() {
for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) {
matrix.fillScreen(LOW);
int letter = i / width;
int x = (matrix.width() - 1) - i % width;
int y = (matrix.height() - 8) / 2; // center the text vertically
while ( x + width - spacer >= 0 && letter >= 0 ) {
if ( letter < tape.length() ) {
matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1);
}
letter--;
x -= width;
}
matrix.write(); // Send bitmap to display
delay(wait);
}
}
Для этих матриц прописал настройки -все работает правильно.
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 8;
matrix.setRotation(3);
Теперь вопрос - как в настройках прописать например 2 строки по 8 матриц в каждой ?
3 строки по 8 ?
Пробовал так - на матрицах мусор(изображение на верхней матрице не сходится с нижней)
int numberOfHorizontalDisplays = 2;
int numberOfVerticalDisplays = 16;
matrix.setRotation(3);
Что я делаю не правильно ?
Еще вопрос в библиотеке Max72xxPanel.h есть команда-
invertDisplay
что это за команда, для чего нужна,как с ней работать ?
Сам только на днях получил, думаю должно быть
int numberOfHorizontalDisplays = 2;
int numberOfVerticalDisplays = 8;
если два ряда по 8 штук. Теперь со статичным выводом воюю.))))
P/S У меня одна планка из четырех штук, проверить не могу.
Сам только на днях получил, думаю должно быть
int numberOfHorizontalDisplays = 2;
int numberOfVerticalDisplays = 8;
если два ряда по 8 штук. Теперь со с воюю.))))
P/S У меня одна планка из четырех штук, проверить не могу.
Так тоже пробовал - как уже говорил на матрицах мусор - картинка на верхнем ряду матриц не сходится с картинкой на нижнем ряду матриц .
А какие у Вас настройки для 1 планки и что не получается со статичным выводом ?
Для одной планки - 1,4. Со статичным - надо пересчет сделать, чтобы по центру выравнивалось. Воюю, это так, сильно сказано.))))
Удалось ли вам все таки решить вопрос? вывести текст на двухрядных табло?
У меня удалось, без особых проблем, у меня 12 матриц, 2 ряда по 6
Необходимо указать позицию и поворот каждой матрицы
А вот со статичным текстом не разобрался
Спасибо. а как дела с кирилицей? отображает? Надо выводить как одно статичное слово, так и бегущие по несколько слов
нет, кирилицу не отображет, думаю надо править файлы шрифтов Adafrut
Вот так выглядит мой дисплей с бегущей строкой
А чтоб большие буквы на всю матрицу? по русификации возможно будет полезно http://zlitos.com/publ/ehlektronika/arduino_i_t_p/arduino_i_svetodiodnye_matricy_8kh8_max7219/12-1-0-35
И так понял статичные слова не получилось отображать?
а как вам библиотека MD.Parola
вот что у меня получилось
https://www.drive2.ru/r/lada/456924323106523636/
Вывод статичного текста, может кому пригодиться
добавляете этот код в конец скетча и вызываете функцию в любом месте программы
PS эта функция не добавляет поддержки кириллицы
У меня матрицы FC-16, 2 строки по 8 матриц в каждой. Сделал так :
А кто работал с RG матрицами,например с такими(ссылка)-https://ru.aliexpress.com/item/8x8-LED-Red-Green-Dual-Color-Dot-Matrix-Display-Module-TM1640-for-Arduino/32476051733.html?spm=2114.03010208.3.328.IRWxDt&ws_ab_test=searchweb0_0,searchweb201602_5_10065_10068_10000032_10000025_10000029_430_10000028_10060_10062_10056_10055_10054_10059_10099_10000022_10000012_10103_10102_10000015_10096_10000018_10000019_10052_10108_10053_10107_10050_10106_10051_10000007_10117_10084_10083_10080_10082_10081_10110_10111_10112_10113_10114_10115_10037_10000041_10000044_10078_10079_10077_10000038_429_10073_10000035,searchweb201603_3,afswitch_4,single_sort_2_default&btsid=6632516e-c660-46ba-be22-e9f4882ae6ca
Интересует любая информация-библиотеки,проекты,и т.д.
Достаточно простая микросхема. Библиотеку можно нарисовать. Конечно много времени займет. У меня такой матрицы нет. Так что мне никчему.
Достаточно простая микросхема. Библиотеку можно нарисовать. Конечно много времени займет. У меня такой матрицы нет. Так что мне никчему.
У меня тоже нет,эту первую увидел,интересуюсь пока. Может еще какие м/сх драйверов есть для RG матриц?
У меня тоже нет,эту первую увидел,интересуюсь пока. Может еще какие м/сх драйверов есть для RG матриц?
https://ru.aliexpress.com/w/wholesale-8*8-8x8-Full-Colour-RGB.html?spm=2...
Но здесь уже надо и схему придумывать. Или же переходить на умные диоды.
У меня тоже нет,эту первую увидел,интересуюсь пока. Может еще какие м/сх драйверов есть для RG матриц?
https://ru.aliexpress.com/w/wholesale-8*8-8x8-Full-Colour-RGB.html?spm=2...
Но здесь уже надо и схему придумывать. Или же переходить на умные диоды.
Это RGB матрицы , меня интересуют именно RG с драйвером чтоб сделать чтото подобное-как на фото.
https://www.thingiverse.com/thing:1508087
https://github.com/stepanov1975/HUB75driver
доделал свое табло на МАХ7219.
https://www.youtube.com/watch?v=qCh_Q4xWqd4
Кстати Австралиец Марко (автор библиотек MD.PAROLA), добавил мою кирилицу в примеры.
https://github.com/MajicDesigns/MD_Parola
Может кто подскажет что за проблема может быть..
При загрузке в Arduino Nano V3 (на матрицах LD-1088AS) скетча всё запускается и инициализируется как положено, но при запуске от включения питания 3-я строка (верхняя) не инициализируется. Но с N-ой попытки включения может запуститься..
P.S. Хотел сейчас снять на видео, но из 5-ти попыток всё запускалось.. чертовщина какая-то...
Получилось.. видео: https://hdd.tomsk.ru/file/sdzprrwu
Так увеличить размер или разрешение? Если размер, то 2088. Две строки из них = четыре из 1088, правда по лапам не войдут (ширина) или проводами, или переразводить плату.
Так увеличить размер или разрешение?
Увеличить размер экрана, что бы увеличить размер цифр, что бы видно было с более далекого расстояния..
Использовал готовые планки из 4-х матриц, т.е. 3 планки по 4 матрицы
Матрица 2088 в два раза выше и шире чем 1088, соответственно 2 строки из них будут по высоте как из 4-ех 1088. По распиновке они идентичные, а вот ширина между гребенками разная. Готовых плат под них не встречал, либо самому разводить, либо на основе готовой от 1088 растаскивать гребенки.
Приветствую.
Блок питания у вас достаточен для 3 планок ?
Какая длина проводов от контроллера до 1 планки и между планками?
А вы где такой шрифт взяли - сами написали или редактировали готовый ?
И еще я не совсем понял - при подключении третьей планки у вас не работает только третья или первые две тоже?
И питание на планки у вас как подано ?
Я запустил 3 ряда по 8 матриц - все работает стабильно , сейчас работаю с такой матрицей - https://ru.aliexpress.com/item/Indoor-full-color-video-wall-SMD-P5-RGB-Module-P5-RGB-LED-Panel-Indoor-Full-color/32760855293.html?spm=a2g0s.9042311.0.0.3NnhDk
Блок питания у вас достаточен для 3 планок ?
Пробовал и от USB, и от такого: https://www.ebay.com/itm/DC-DC-Step-Down-Buck-Module-12V-To-5V-3-3V-Power-Supply-Module-50x32mm-/122356145347?hash=item1c7cfe9cc3
Какая длина проводов от контроллера до 1 планки и между планками?
Длина минимальная, около 10-15 см
А вы где такой шрифт взяли - сами написали или редактировали готовый ?
Шрифт сам сделал, думаю, сейчас это не проблема.. можно здесь: https://www.riyas.org/2013/12/online-led-matrix-font-generator-with.html
И еще я не совсем понял - при подключении третьей планки у вас не работает только третья или первые две тоже?
При загрузке скетча из Arduino IDE всё работает!
А когда просто включаю питание (так же от USB)- проблема как на картинке, но с нескольких попыток может запуститься. Не работает только третья планка (вся или может только одна матрица не запуститься). Выше давал ссылку на короткое видео.
Матрица 2088 в два раза выше и шире чем 1088, соответственно 2 строки из них будут по высоте как из 4-ех 1088. По распиновке они идентичные, а вот ширина между гребенками разная. Готовых плат под них не встречал, либо самому разводить, либо на основе готовой от 1088 растаскивать гребенки.
У меня 5 планок, надеялся как-то их использовать.. что бы без особых заморочек.. ;-))
У меня 5 планок, надеялся как-то их использовать.. что бы без особых заморочек.. ;-))
Так уже не хватает, увеличиваем высоту, надо пропорционально и длину, иначе уе...ще сплющенное получится. А по питанию каждая единица жрет как и большая. ИМХО.
С USB аккуратнее, восемь матриц при полном заполнении и полной яркости ~1,3А, спалите легко. Питание лучше заведите с двух сторон и конденсаторов добавьте.
Повторяю вопрос - питание на третью планку как подано ?
На каждую планку от бп дайте отдельное питание
Повторяю вопрос - питание на третью планку как подано ?
Питание на 3 планку сквозное - со второй. На первую отдельно с блока питания. На МК и датчики - отдельно с того же БП. Попробую на каждую отдельно завести питание. С этим понятно..
Не понятен другой момент: почему срозу после прошивки Arduino все планки работают всегда!!! А после выключения питания - как повезет, могут и все заработать..
Так уже не хватает, увеличиваем высоту, надо пропорционально и длину, иначе уе...ще сплющенное получится.
Полностью согласен! Пока главное добиться стабильной работы..
А можно эти планки разбивать и пересобирать другое количество? Например, сделать планки (они же строки) по 6 матриц? Итого получится 18 матриц.. С библиотекой корректно будет работать?
По идее должно, планки они как шоколадки, ломай по надобности. В проге только корректно указать.
при использовании библиотек md parola есть проблемы запуска табло более одной высоты. Автор библиотек говорит чудеса с динамической памятью. И проблему не устранил
На каждую планку от бп дайте отдельное питание
Разводка питания помогла решить проблему!
Добавить модули и проверить пока не могу, пришлось отложить пока этот вопрос..
Вывод статичного текста, может кому пригодиться
добавляете этот код в конец скетча и вызываете функцию в любом месте программы
PS эта функция не добавляет поддержки кириллицы
А как к этому коду привязать часы , например на 1307 ?
Перевести в текст и отправить как "Ваш текст".
Перевести в текст и отправить как "Ваш текст".
А как разбить "часы и минуты" по 4м сегментам? и помигать точками?
Самое простое, создать массив char, распознать и вставить в свои позиции символы цифр, между ними вставить символ разделителя (двоеточия?). Символ разделителя каждую секунду менять на пусто-символ. Отправлять этот массив в функцию, желательно не чаще, чем требуется для корректного отображения. Как превратить цифру в символ, ищем на форуме.
Если еще для кого актуально, вывод времени на матрицы (у меня 2 ряда по 4 шт):
Если нужно просто вывести время:
При компиляции любого примера из библиотеки MAX72xxPanel выдается ошибка. Подробный отчет об Ошибке:
Например: https://www.google.com/search?q=Adafruit_I2CDevice.h