Контроллер для LED матрицы 8х8 - что это такое?

InterSky
Offline
Зарегистрирован: 24.12.2014

В старовых комплектах ардуины почти всегда присутсвует LED матрицы 8х8. Причём самостоятельно, без каких либо дополнительных блоков (например у шагового двигателя в комплекте всегда идёт драйвер). А вот если заказывать LED матрицу 8х8 самостоятельно в интернете, то с ней очень часто присутсвует ещё какой-то контроллер (которого никогда не увидишь в стартовом наборе, хотя стоит копейку). Может кто-нибудь работал с ним и знает для чего он?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. Занимает меньше пинов Ардуины.

2. Проще программировать.

InterSky
Offline
Зарегистрирован: 24.12.2014

Опять же, про пины понятно (это видно визуально). А в чём заключается более простое программирование? Я именно и не понимаю, какой функционал берёт на себя этот контроллер? Ну хотя бы в нескольких словах.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

На каждый сегмент для статического управления нужна отдельная нога управления. Если у нас матрица 8х8, значит, сегментов 64 и столько же ного нужно ног. Это уже совсем через край, поэтому используют динамическую индикацию, организуя сегменты в виде матрицы 8х8. В этом случае ног нужно всего 16, но нужно заботиться, чтобы примерно так раз в 1 мс происходило переключение сегментов. В отсутствие драйвера это должна делать программа.

stn
Offline
Зарегистрирован: 22.08.2016

В этот контроллер можно только заливать- состояния драйвера MAX7219, обратной связи у него нет. При первом включении его нужно настроить. Очень просто подключить к COM порту на прямую, без арду и получить устройство управления к примеру 64 нагруками , или все то ,чем можно управлять с помощью светодиода. У maximintegrated есть софт "прямого" подключения через LPT.. если через сом понадобиться три резистора  и три стабилитрона + 9 пиновый конектор., и будет Вам игрушка для ПК. Если Вам интересно по теме sereal port и MAX7219 спрашивайте.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

InterSky пишет:

 какой функционал берёт на себя этот контроллер? Ну хотя бы в нескольких словах.

Вот его (этого контроллера) полное описание, читайте.

Если Вам НЕ нужно управлять яркостью каждого светодиода индивидуально, то это то, что надо!

Если же нужно, то этот контроллер Вам не помошник - посмотрите вот эту тему. Там, правда, цветная матрица (считай, втрое больше светодиодов).

stn
Offline
Зарегистрирован: 22.08.2016

https://yadi.sk/d/2XnBqK7guWFsK

Запуск драйаера МАХ7219 с сом порта. Если стоит матрица на 64 диода и на дисплее всякие каряборы, вначале надо записать все дешифраторы а потом их все убрать. Единичное удаление дешифратора столбца может ничего не дать, по причине того что мы не знаем что туда записано ранее. Утилитка за "пряники" попросится на страничку спонсора, если ее закрыть обнулит счетчик. Правильность подключения к порту кнопкой "тест" запускается без всякой настройки. Если все светодиоды засвитились значит все ок.

InterSky
Offline
Зарегистрирован: 24.12.2014

Поскольку у меня в стартовом комплекте ардуины идёт простая матрица без контроллера, я для того чтобы попробывать поиграться с этим делом решил заказать такую:

Цельная панелька из четырёх матриц (итого получается 8х32). И стоит всего 3.50€
https://ru.aliexpress.com/item//32623732034.html
Буду разбираться с max7219.
Цветную конечно хотелось бы больше, но по адекватной цене я не нашёл...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

InterSky пишет:

Цветную конечно хотелось бы больше, но по адекватной цене я не нашёл...

Вы считаете цену в 234 рубля неадекватной?

InterSky
Offline
Зарегистрирован: 24.12.2014

ЕвгенийП пишет:
Вы считаете цену в 234 рубля неадекватной?

Если я правильно понял - то 234 рубля стоит без контроллера. Или я ошибаюсь?
Я просто как правило натыкался в районе 13€

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, только сама матрица. Контроллер можно сделать, еапример, как в моей статье. Там есть и схема и печатная плата м скетч

arduinec
Offline
Зарегистрирован: 01.09.2015

ЕвгенийП пишет:

Да, только сама матрица. Контроллер можно сделать, еапример, как в моей статье. Там есть и схема и печатная плата м скетч

Контроллер можно и купить, но стоит он дороже матрицы:
http://ru.aliexpress.com/item/Colors-Shield-8X8-RGB-LED-Matrix-Driver-Mo...
http://ru.aliexpress.com/item/Consumer-Electronics-Shop-Free-shipping-LE...

Матрица на чипе WS2812 дешевле и легко управляется Ардуиной:
http://ru.aliexpress.com/item/WS2812-LED-5050-RGB-8x8-64-LED-Matrix-for-...
 

kadir544
Offline
Зарегистрирован: 25.11.2015

А интереснее купить просто матрицу или собрать самому и несколько сдвиговых 74hc595 а прошивку рисовать самому. 3 контакта с ардуины и управляй сотнями лампочек

InterSky
Offline
Зарегистрирован: 24.12.2014

kadir544 пишет:
А интереснее купить просто матрицу или собрать самому и несколько сдвиговых 74hc595 а прошивку рисовать самому. 3 контакта с ардуины и управляй сотнями лампочек
А ещё интересней самому спаять ардуину, причём на микропроцессоре собственного производства. И к тому же разработать для него свой собственный язык программирования. И управляй по двум проводам хоть миллионами лампочек.
Кто-то умеет собирать контроллеры, а кто-то не знает для чего диод и сопротивление, но хорошо умеет программировать, и у обоих есть какая-то задумка - что и каким образом они хотят в итоге получить. При этом у каждого своё понятие об "интересном". Не надо другим навязывать своё...

kadir544
Offline
Зарегистрирован: 25.11.2015

Ну зачем вы так. Может стравить плату матрицы это на самом деле шлишком. А вот вникнуть в динамичускую индикацию надо самому. Помню после того как я научился мигать светодиодом захотелось мигать большем количеством а дальше уже пошла бегущая строка с своим скечем. 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

InterSky пишет:

на микропроцессоре

на микроконтроллере

kadir544
Offline
Зарегистрирован: 25.11.2015
InterSky
Offline
Зарегистрирован: 24.12.2014

Красиво, не спорю, но у меня даже паяльника никогда не было. И выше уже заметили что я не отличу микропроцессор от микроконтроллера. Да и выше я сам сказал что диод от транзистора и резистора я не отличу ни по виду ни по выполняемым функциям. Мне интересно просто воткнут датчики и с головой погрузиться в программирование (в идеале не видя ни одной радиодетали или микросхемы). Кому-то наобор, нравится паять, разбираться в радиосхемах. Я просто попросил не навязывать другим...

arduinec
Offline
Зарегистрирован: 01.09.2015

kadir544 пишет:

А интереснее купить просто матрицу или собрать самому и несколько сдвиговых 74hc595 а прошивку рисовать самому. 3 контакта с ардуины и управляй сотнями лампочек

Матрице на чипе WS2812 не нужны никакие регистры, она управляется по одному проводу и может не просто мигать светодиодами, а переливаться разными цветами. Для программирования эффектов есть готовые библиотеки: Adafruit_NeoPixel и FastLED (например).

arduinec
Offline
Зарегистрирован: 01.09.2015

kadir544 пишет:

дальше уже пошла бегущая строка с своим скечем. 

Бегущая строка на лентах с чипом WS2812:
https://yadi.sk/i/KjPlzioNjskYL
https://yadi.sk/i/RzuRDpZkkK32s
 

kadir544
Offline
Зарегистрирован: 25.11.2015

я не навязываю. я советаю и желаю вам удачи в ваших начинаях. если честно я тоже не знаю разницу между микрконтроллером и микропроцессором. у меня в комплекте тоже был такой модуль так я в нем ничего и не понял. кнечно получалсь по готовым скечам выводить на экран готовые символы но что бы понять изнутри просто потратил неск дней и понял как все работает. 

kadir544
Offline
Зарегистрирован: 25.11.2015

моя управляется по трем. и тоже все умеет. что я сам задам. даже то что не умеют те библиотеки. )))  

kadir544
Offline
Зарегистрирован: 25.11.2015

к сожалению не открывается видео

arduinec
Offline
Зарегистрирован: 01.09.2015

kadir544 пишет:

я не навязываю. я советаю и желаю вам удачи в ваших начинаях. если честно я тоже не знаю разницу между микрконтроллером и микропроцессором. у меня в комплекте тоже был такой модуль так я в нем ничего и не понял. кнечно получалсь по готовым скечам выводить на экран готовые символы но что бы понять изнутри просто потратил неск дней и понял как все работает. 

Я тоже не навязываю, просто описал возможный вариант.
То что вы сделали на регистрах 595 это тоже неплохой вариант.

arduinec
Offline
Зарегистрирован: 01.09.2015

kadir544 пишет:

к сожалению не открывается видео

Фото:

kadir544
Offline
Зарегистрирован: 25.11.2015

arduinec пишет:

kadir544 пишет:

к сожалению не открывается видео

Фото:

инетересно. а есть ссылка на статью? 

arduinec
Offline
Зарегистрирован: 01.09.2015

kadir544 пишет:

инетересно. а есть ссылка на статью? 

А статьи нет, это одна из моих поделок. Нарезал 8 метров ленты с чипом WS2812 на 8 кусков по 60 светодиодов в каждом. Куски соединены последовательно (в прямом и обратном направлениях) и управляются по одному проводу (всего 480 светодиодов). Разумеется для ленты требуется дополнительное питание.

kadir544
Offline
Зарегистрирован: 25.11.2015

arduinec пишет:

kadir544 пишет:

инетересно. а есть ссылка на статью? 

А статьи нет, это одна из моих поделок. Нарезал 8 метров ленты с чипом WS2812 на 8 кусков по 60 светодиодов в каждом. Куски соединены последовательно (в прямом и обратном направлениях) и управляются по одному проводу (всего 480 светодиодов). Разумеется для ленты требуется дополнительное питание.

а светодиоды между собой как? В ручную каждый? По умолчанию они все не на одной линии? И вертикально они общаются?

kadir544
Offline
Зарегистрирован: 25.11.2015

А все понятно. Там у каждого светодиода своя микросхема. Дорого наверно получается

arduinec
Offline
Зарегистрирован: 01.09.2015

kadir544 пишет:

А все понятно. Там у каждого светодиода своя микросхема. Дорого наверно получается

В последнее время здесь брали: http://ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-stri...
У этого же поставщика есть готовые табло 8x32, но с лентами получается дешевле.
 

kadir544
Offline
Зарегистрирован: 25.11.2015

arduinec пишет:

kadir544 пишет:

А все понятно. Там у каждого светодиода своя микросхема. Дорого наверно получается

В последнее время здесь брали: http://ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-stri...
У этого же поставщика есть готовые табло 8x32, но с лентами получается дешевле.
 

во сколько обошлась ваша строка если не секрет? И прошивку сами написали символы итд или готовое есть?

InterSky
Offline
Зарегистрирован: 24.12.2014

Табло 8х60 (а точнее 8 метров ленты) ему обошлось около 40€.
Потребляет табло до 150 ватт в час! Мне кажется немыслемый для сегодняшнего времени объём! Я год назад всё освещение в квартире перевёл на LED, и теперь если включить весь имеющийся свет в квартире у мне даже 100 ватт в час потреблять не будет. А тут табло должно светить как 1.5 киловатная лампочка из советского времени. Даже не представляю как это должно светить (на примерах явно не так светит).

Сделали бы видо-обзор того как это делали (что и как планировали, что не получилось, с какими трудностями сталкнулись, как в итоге реализовалось). Раз там у каждого светодиода своя микросхема, значит этим можно управлять программно... Это уже моя тема! Заинтересовался!

kadir544
Offline
Зарегистрирован: 25.11.2015

InterSky пишет:

Табло 8х60 (а точнее 8 метров ленты) ему обошлось около 40€.
Потребляет табло до 150 ватт в час! Мне кажется немыслемый для сегодняшнего времени объём! Я год назад всё освещение в квартире перевёл на LED, и теперь если включить весь имеющийся свет в квартире у мне даже 100 ватт в час потреблять не будет. А тут табло должно светить как 1.5 киловатная лампочка из советского времени. Даже не представляю как это должно светить (на примерах явно не так светит).

Сделали бы видо-обзор того как это делали (что и как планировали, что не получилось, с какими трудностями сталкнулись, как в итоге реализовалось). Раз там у каждого светодиода своя микросхема, значит этим можно управлять программно... Это уже моя тема! Заинтересовался!

led лампочки конечно удобно и я тоже дома сменил но только кухню туалет и корридор. в гостинной действует на нервы этот свет хочется старого доброго света от лампы накаливания. а ленты конечно интересно но цена этот интерес у меня убивает. если 8х60 то это 480 ламп одноцветные по 1 центу. стеклотекстолит.хлорное железо неск регистров сдвига паяльник и ай да пошел ))

вы кстати посмотрите такие видео может и желание появится. правда на виде парень усложнил все в нес раз

 https://www.youtube.com/watch?v=iwwnwAe_wk8

arduinec
Offline
Зарегистрирован: 01.09.2015

InterSky пишет:

Потребляет табло до 150 ватт в час! Мне кажется немыслемый для сегодняшнего времени объём! Я год назад всё освещение в квартире перевёл на LED, и теперь если включить весь имеющийся свет в квартире у мне даже 100 ватт в час потреблять не будет. А тут табло должно светить как 1.5 киловатная лампочка из советского времени. Даже не представляю как это должно светить (на примерах явно не так светит).

Во-первых, максимальную мощность табло потребляет при включении всех светодиодов белым цветом - бегущая цветная строка потребляет в несколько раз меньше. А во-вторых, табло и предназначено, чтобы светить как можно ярче.

InterSky пишет:

Сделали бы видо-обзор того как это делали (что и как планировали, что не получилось, с какими трудностями сталкнулись, как в итоге реализовалось). Раз там у каждого светодиода своя микросхема, значит этим можно управлять программно...

Всё было просто: пока шла лента из Китая, написал скетч, который сразу заработал.
Как делалось табло описано в посте 26, какие библиотеки можно использовать - в посте 18. Шрифт взял из своей темы: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...

Глобальная проблема только одна - память. На каждый светодиод нужно по 3 байта, соответственно 480 светодиодов используют 1440 байт, а памяти в Arduino Uno/Nano 2048 байт.

InterSky
Offline
Зарегистрирован: 24.12.2014

arduinec пишет:
Глобальная проблема только одна - память. На каждый светодиод нужно по 3 байта, соответственно 480 светодиодов используют 1440 байт, а памяти в Arduino Uno/Nano 2048 байт.
Я полный ноль в ардуине, но как программист, я не понимаю зачем на каждый светодиод в ваших примерах вам нужено больше чем один 1 БИТ? (в 24 раза меньше чем у вас сейчас)

Из того что я увидел в ваших видео-примерах, у вас существует всего 2 режима:
1) пишем/рисуем на горизонтальном градиенте
2) пишем/рисуем на диагональном градиенте

Следовательно всё что вам надо - это указать: точка светится или нет (1 или 0), это один бит.
И одну дополнительную переменную, говорящую какой стартовый цвет градиента. А дальши функция моментально скажет какой цвет у вас в любой точке: если бит НОЛЬ -  значит и цвет чёрный, если же бит "1" значит берём стартовый цвет градиента и домножаем на номер колонкти с коефицентом по каждому цвету RGB. И всё...
При достижении определённой колонки выполняется функция Инверсия(), которая меняет все биты в массиве (с нуля на единицу и с единицы на ноль), таким образом получаем мигание, которое мы видели у вас (думаю у вас и так это реализовано).
А при достижении определённой колонки присваиваем переменной "ДиагональныйГрадиент" значеиние "1", и перед функцией расчёта цвета вводится поправка колонки: СдвигЦвета=Колонка-ДиагональныйГрадиент*Строка;
Получается что при ДиагональныйГрадиент==0 у вас для расчёта цвета скажем в сотой колонке, для любой строки, вызывается функция: РасчётЦвета(100)
А при ДиагональныйГрадиент==1, у вас для нулевой строки будет РасчётЦвета(100), для первой уже РасчётЦвета(99), для второй РасчётЦвета(98), таким образом у вас градиент диагональный.
Весь расчёт можно вообще забить в 1 стррку кода!

ЦветПикселя=МассивТекста[x,y]*РасчётЦвета(x-ДиагональныйГрадиент*y)

Если в матрице МассивТекста для пикселя стоит "0" то цвет по любому будет нулевым, а если стоит "единица", то произведётся расчёт цвета. При этом если у нас ДиагональныйГрадиент равен нулю, то расчёт цвета идёт чисто от номера колонки, а если там "единица" то сдвигается в зависимости от строки.
Ну или облегчить процессору жизнь и разветвить:
if (МассивТекста[x,y]==0) ЦветПикселя=0;
else if (ДиагональныйГрадиент==0) ЦветПикселя=РасчётЦвета(x);
else ЦветПикселя=РасчётЦвета(x-y);
(хотя думаю что второй IF явно лишний, ведь операция "умножения" для процессора является более быстрой чем операция "ветвление", но это всё же зависит от процессора: скажем процессоры Intel работают на опережение и захватывают сразу несколько команд для выполнения идущих прямоленейно, как будто все if(true), а процессоры AMD наоборот при встречи ветвляения заранее берут код из if then (...) и из if else (...). В результате если ты пишешь под Intel то стараешься чтобы в if попадалобы как можно больше true, так как иначе процессору придётся выкидывать большие куски заранее заранее захваченного и даже выполненного кода.
 

А по поводу потребления табло - я же сказал, цитирую: Потребляет табло до 150 ватт в час.
Ясное дело что если светодиод горит одним цветом, то он потребляет примерно в 3 раза меньше.
Но света от него у вас всё равно меньше чем от советской 500 ваттной лампочки (у меня когда-то в зале такая стояла, я глаза щурил когда входил в комнату).

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

InterSky пишет:

...я же сказал, цитирую: Потребляет табло до 150 ватт в час.

Сколько можно повторять эту глупость?

Вы хоть учебник физики откройте и посмотрите, что такое Ватт.

InterSky
Offline
Зарегистрирован: 24.12.2014

andriano пишет:
колько можно повторять эту глупость?
Вы хоть учебник физики откройте и посмотрите, что такое Ватт.
Зачем мне учебник по физике? У меня есть RGBW лента 18w и ваттметр, и я знаю сколько она потребляет при красном, зелёном, синем, белом, и включая все цвета.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

InterSky пишет:

Зачем мне учебник по физике?

Тут я согласен! Действительно, зачем еоргафия, если ямщик и так знает куда везти? 

InterSky
Offline
Зарегистрирован: 24.12.2014

ЕвгенийП пишет:
Тут я согласен! Действительно, зачем еоргафия, если ямщик и так знает куда везти?
Ямщик - это чужие знания, а не собсвенный опыт.

kadir544
Offline
Зарегистрирован: 25.11.2015

InterSky пишет:

andriano пишет:
колько можно повторять эту глупость?
Вы хоть учебник физики откройте и посмотрите, что такое Ватт.
Зачем мне учебник по физике? У меня есть RGBW лента 18w и ваттметр, и я знаю сколько она потребляет при красном, зелёном, синем, белом, и включая все цвета.

она будет потреблять по разному так как не всегда идут длинные слова тоесть не все лампы горят. а динамическая индикация так устроена что одновременно горят только 8 из 64 просто они так быстро меняются что наш глаз этого не замечает. может в последних лентах все подругму. если не прав поправьте  

kadir544
Offline
Зарегистрирован: 25.11.2015

кто поможет. вернее подскажет как вывести часы на самодельную матрицу? есть в инете модули часов его как ардуине а дальше что?

arduinec
Offline
Зарегистрирован: 01.09.2015

InterSky пишет:

Я полный ноль в ардуине, но как программист, я не понимаю зачем на каждый светодиод в ваших примерах вам нужено больше чем один 1 БИТ? (в 24 раза меньше чем у вас сейчас)

У каждого светодиода 256 (8 бит) градаций красного, 256 зелёного и 256 синего - итого 24 бита или 3 байта. Как выводить эти биты определено в даташите на WS2812.

InterSky пишет:

Но света от него у вас всё равно меньше чем от советской 500 ваттной лампочки (у меня когда-то в зале такая стояла, я глаза щурил когда входил в комнату).

Примерно также "прищуривает глаза" видеокамера, чтобы получить нормальное изображение.

InterSky
Offline
Зарегистрирован: 24.12.2014

kadir544 пишет:
одновременно горят только 8 из 64 просто они так быстро меняются что наш глаз этого не замечает
Ничего себе! В первые о таком слышу. Это с какой частотой они тогда мерцают?

kadir544 пишет:
кто поможет. вернее подскажет как вывести часы на самодельную матрицу? есть в инете модули часов его как ардуине а дальше что?
А в чём конкретно вопрос? В модуле время, считываешь и придумав свои шрифты выводишь в нужные точки матрицы. Или я не понял вопроса...

arduinec пишет:
дого светодиода 256 (8 бит) градаций красного, 256 зелёного и 256 синего - итого 24 бита или 3 байта. Как выводить эти биты определено в даташите на WS2812.
Так и я говорил что в функция РасчётЦвета() даёт мне трёхбайтный RGB цвет, и WS2812 получит ровно то что ей положено по спецификации. Но я не храню на ардуине передаваемое изображение в виде 24 битов на пиксель, а храню в виде 1 бит на пиксель. В результате на 480 светодиодов используют не 1440 байт (как у вас), а только 60 байт...

kadir544
Offline
Зарегистрирован: 25.11.2015

InterSky пишет:

?

А в чём конкретно вопрос? В модуле время, считываешь и придумав свои шрифты выводишь в нужные точки матрицы. Или я не понял вопроса...

т...

[/quote] правильно поняли. я этим модулем не пользовался и даже не знаю в каком виде он дает время на микроконтроллер. неужели придется мучаться. типа если первая цифра то.то на экран выводить то если вторая то то это итд.

InterSky
Offline
Зарегистрирован: 24.12.2014

kadir544 пишет:
даже не знаю в каком виде он дает время на микроконтроллер. неужели придется мучаться.
Так типов Даты всего вроде в природе 3 сужествует:
1) текстовый (хотя каждый может писать по своему)
2) в виде 1 - это секунда (как на языке С, ну точнее в нём нет формата даты, по этому им так приходится выкручиваться)
3) в виде 1 - это день (как на языке Паскаль, собственно там только и существует тип Дата и Время)

и при первом обращении ты сразу поймёшь какой формат получил...

Ну а если ты о методе обращения, тогда надо знать на какой микросхеме у тебя реализовано:
1) DS1307 - подключается по I2C, и ардуина с ним работает аппаратно
2) DS1302 - своя трёхпроводная шина данных, и ардуина с ним работает програмно

https://www.youtube.com/watch?v=dCevx2I3S38
 

kadir544
Offline
Зарегистрирован: 25.11.2015

Мне наверно легче было бы сделать часы программой без всяких модулей. Только вот каждый раз отключая питание время будет сбрасываться. 

InterSky
Offline
Зарегистрирован: 24.12.2014

kadir544 пишет:
Мне наверно легче было бы сделать часы программой без всяких модулей. Только вот каждый раз отключая питание время будет сбрасываться.
Так единственная необходимость в этих датчиках заключается в наличии там батарейки, которая всё время даёт работать микросхеме и считать время... (впрочем и у компьютера точно такая же ситуация - батарейка в материнке стоит, чтобы при выключении время шло).