Контроллер для LED матрицы 8х8 - что это такое?
- Войдите на сайт для отправки комментариев
Вс, 11/09/2016 - 21:38
В старовых комплектах ардуины почти всегда присутсвует LED матрицы 8х8. Причём самостоятельно, без каких либо дополнительных блоков (например у шагового двигателя в комплекте всегда идёт драйвер). А вот если заказывать LED матрицу 8х8 самостоятельно в интернете, то с ней очень часто присутсвует ещё какой-то контроллер (которого никогда не увидишь в стартовом наборе, хотя стоит копейку). Может кто-нибудь работал с ним и знает для чего он?
1. Занимает меньше пинов Ардуины.
2. Проще программировать.
Опять же, про пины понятно (это видно визуально). А в чём заключается более простое программирование? Я именно и не понимаю, какой функционал берёт на себя этот контроллер? Ну хотя бы в нескольких словах.
На каждый сегмент для статического управления нужна отдельная нога управления. Если у нас матрица 8х8, значит, сегментов 64 и столько же ного нужно ног. Это уже совсем через край, поэтому используют динамическую индикацию, организуя сегменты в виде матрицы 8х8. В этом случае ног нужно всего 16, но нужно заботиться, чтобы примерно так раз в 1 мс происходило переключение сегментов. В отсутствие драйвера это должна делать программа.
В этот контроллер можно только заливать- состояния драйвера MAX7219, обратной связи у него нет. При первом включении его нужно настроить. Очень просто подключить к COM порту на прямую, без арду и получить устройство управления к примеру 64 нагруками , или все то ,чем можно управлять с помощью светодиода. У maximintegrated есть софт "прямого" подключения через LPT.. если через сом понадобиться три резистора и три стабилитрона + 9 пиновый конектор., и будет Вам игрушка для ПК. Если Вам интересно по теме sereal port и MAX7219 спрашивайте.
какой функционал берёт на себя этот контроллер? Ну хотя бы в нескольких словах.
Вот его (этого контроллера) полное описание, читайте.
Если Вам НЕ нужно управлять яркостью каждого светодиода индивидуально, то это то, что надо!
Если же нужно, то этот контроллер Вам не помошник - посмотрите вот эту тему. Там, правда, цветная матрица (считай, втрое больше светодиодов).
https://yadi.sk/d/2XnBqK7guWFsK
Запуск драйаера МАХ7219 с сом порта. Если стоит матрица на 64 диода и на дисплее всякие каряборы, вначале надо записать все дешифраторы а потом их все убрать. Единичное удаление дешифратора столбца может ничего не дать, по причине того что мы не знаем что туда записано ранее. Утилитка за "пряники" попросится на страничку спонсора, если ее закрыть обнулит счетчик. Правильность подключения к порту кнопкой "тест" запускается без всякой настройки. Если все светодиоды засвитились значит все ок.
Поскольку у меня в стартовом комплекте ардуины идёт простая матрица без контроллера, я для того чтобы попробывать поиграться с этим делом решил заказать такую:
Цельная панелька из четырёх матриц (итого получается 8х32). И стоит всего 3.50€
https://ru.aliexpress.com/item//32623732034.html
Буду разбираться с max7219.
Цветную конечно хотелось бы больше, но по адекватной цене я не нашёл...
Цветную конечно хотелось бы больше, но по адекватной цене я не нашёл...
Вы считаете цену в 234 рубля неадекватной?
Если я правильно понял - то 234 рубля стоит без контроллера. Или я ошибаюсь?
Я просто как правило натыкался в районе 13€
Да, только сама матрица. Контроллер можно сделать, еапример, как в моей статье. Там есть и схема и печатная плата м скетч
Да, только сама матрица. Контроллер можно сделать, еапример, как в моей статье. Там есть и схема и печатная плата м скетч
Контроллер можно и купить, но стоит он дороже матрицы:
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-...
А интереснее купить просто матрицу или собрать самому и несколько сдвиговых 74hc595 а прошивку рисовать самому. 3 контакта с ардуины и управляй сотнями лампочек
Кто-то умеет собирать контроллеры, а кто-то не знает для чего диод и сопротивление, но хорошо умеет программировать, и у обоих есть какая-то задумка - что и каким образом они хотят в итоге получить. При этом у каждого своё понятие об "интересном". Не надо другим навязывать своё...
Ну зачем вы так. Может стравить плату матрицы это на самом деле шлишком. А вот вникнуть в динамичускую индикацию надо самому. Помню после того как я научился мигать светодиодом захотелось мигать большем количеством а дальше уже пошла бегущая строка с своим скечем.
на микропроцессоре
на микроконтроллере
http://vfl.ru/fotos/45e68de814152911.html
А интереснее купить просто матрицу или собрать самому и несколько сдвиговых 74hc595 а прошивку рисовать самому. 3 контакта с ардуины и управляй сотнями лампочек
Матрице на чипе WS2812 не нужны никакие регистры, она управляется по одному проводу и может не просто мигать светодиодами, а переливаться разными цветами. Для программирования эффектов есть готовые библиотеки: Adafruit_NeoPixel и FastLED (например).
дальше уже пошла бегущая строка с своим скечем.
Бегущая строка на лентах с чипом WS2812:
https://yadi.sk/i/KjPlzioNjskYL
https://yadi.sk/i/RzuRDpZkkK32s
я не навязываю. я советаю и желаю вам удачи в ваших начинаях. если честно я тоже не знаю разницу между микрконтроллером и микропроцессором. у меня в комплекте тоже был такой модуль так я в нем ничего и не понял. кнечно получалсь по готовым скечам выводить на экран готовые символы но что бы понять изнутри просто потратил неск дней и понял как все работает.
моя управляется по трем. и тоже все умеет. что я сам задам. даже то что не умеют те библиотеки. )))
к сожалению не открывается видео
я не навязываю. я советаю и желаю вам удачи в ваших начинаях. если честно я тоже не знаю разницу между микрконтроллером и микропроцессором. у меня в комплекте тоже был такой модуль так я в нем ничего и не понял. кнечно получалсь по готовым скечам выводить на экран готовые символы но что бы понять изнутри просто потратил неск дней и понял как все работает.
Я тоже не навязываю, просто описал возможный вариант.
То что вы сделали на регистрах 595 это тоже неплохой вариант.
к сожалению не открывается видео
Фото:
к сожалению не открывается видео
Фото:
инетересно. а есть ссылка на статью?
инетересно. а есть ссылка на статью?
А статьи нет, это одна из моих поделок. Нарезал 8 метров ленты с чипом WS2812 на 8 кусков по 60 светодиодов в каждом. Куски соединены последовательно (в прямом и обратном направлениях) и управляются по одному проводу (всего 480 светодиодов). Разумеется для ленты требуется дополнительное питание.
инетересно. а есть ссылка на статью?
А статьи нет, это одна из моих поделок. Нарезал 8 метров ленты с чипом WS2812 на 8 кусков по 60 светодиодов в каждом. Куски соединены последовательно (в прямом и обратном направлениях) и управляются по одному проводу (всего 480 светодиодов). Разумеется для ленты требуется дополнительное питание.
А все понятно. Там у каждого светодиода своя микросхема. Дорого наверно получается
А все понятно. Там у каждого светодиода своя микросхема. Дорого наверно получается
В последнее время здесь брали: http://ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-stri...
У этого же поставщика есть готовые табло 8x32, но с лентами получается дешевле.
А все понятно. Там у каждого светодиода своя микросхема. Дорого наверно получается
В последнее время здесь брали: http://ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-stri...
У этого же поставщика есть готовые табло 8x32, но с лентами получается дешевле.
Табло 8х60 (а точнее 8 метров ленты) ему обошлось около 40€.
Потребляет табло до 150 ватт в час! Мне кажется немыслемый для сегодняшнего времени объём! Я год назад всё освещение в квартире перевёл на LED, и теперь если включить весь имеющийся свет в квартире у мне даже 100 ватт в час потреблять не будет. А тут табло должно светить как 1.5 киловатная лампочка из советского времени. Даже не представляю как это должно светить (на примерах явно не так светит).
Сделали бы видо-обзор того как это делали (что и как планировали, что не получилось, с какими трудностями сталкнулись, как в итоге реализовалось). Раз там у каждого светодиода своя микросхема, значит этим можно управлять программно... Это уже моя тема! Заинтересовался!
Табло 8х60 (а точнее 8 метров ленты) ему обошлось около 40€.
Потребляет табло до 150 ватт в час! Мне кажется немыслемый для сегодняшнего времени объём! Я год назад всё освещение в квартире перевёл на LED, и теперь если включить весь имеющийся свет в квартире у мне даже 100 ватт в час потреблять не будет. А тут табло должно светить как 1.5 киловатная лампочка из советского времени. Даже не представляю как это должно светить (на примерах явно не так светит).
Сделали бы видо-обзор того как это делали (что и как планировали, что не получилось, с какими трудностями сталкнулись, как в итоге реализовалось). Раз там у каждого светодиода своя микросхема, значит этим можно управлять программно... Это уже моя тема! Заинтересовался!
вы кстати посмотрите такие видео может и желание появится. правда на виде парень усложнил все в нес раз
https://www.youtube.com/watch?v=iwwnwAe_wk8
Потребляет табло до 150 ватт в час! Мне кажется немыслемый для сегодняшнего времени объём! Я год назад всё освещение в квартире перевёл на LED, и теперь если включить весь имеющийся свет в квартире у мне даже 100 ватт в час потреблять не будет. А тут табло должно светить как 1.5 киловатная лампочка из советского времени. Даже не представляю как это должно светить (на примерах явно не так светит).
Во-первых, максимальную мощность табло потребляет при включении всех светодиодов белым цветом - бегущая цветная строка потребляет в несколько раз меньше. А во-вторых, табло и предназначено, чтобы светить как можно ярче.
Сделали бы видо-обзор того как это делали (что и как планировали, что не получилось, с какими трудностями сталкнулись, как в итоге реализовалось). Раз там у каждого светодиода своя микросхема, значит этим можно управлять программно...
Всё было просто: пока шла лента из Китая, написал скетч, который сразу заработал.
Как делалось табло описано в посте 26, какие библиотеки можно использовать - в посте 18. Шрифт взял из своей темы: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...
Глобальная проблема только одна - память. На каждый светодиод нужно по 3 байта, соответственно 480 светодиодов используют 1440 байт, а памяти в Arduino Uno/Nano 2048 байт.
Из того что я увидел в ваших видео-примерах, у вас существует всего 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 ваттной лампочки (у меня когда-то в зале такая стояла, я глаза щурил когда входил в комнату).
...я же сказал, цитирую: Потребляет табло до 150 ватт в час.
Сколько можно повторять эту глупость?
Вы хоть учебник физики откройте и посмотрите, что такое Ватт.
Вы хоть учебник физики откройте и посмотрите, что такое Ватт.
Зачем мне учебник по физике?
Тут я согласен! Действительно, зачем еоргафия, если ямщик и так знает куда везти?
Вы хоть учебник физики откройте и посмотрите, что такое Ватт.
кто поможет. вернее подскажет как вывести часы на самодельную матрицу? есть в инете модули часов его как ардуине а дальше что?
Я полный ноль в ардуине, но как программист, я не понимаю зачем на каждый светодиод в ваших примерах вам нужено больше чем один 1 БИТ? (в 24 раза меньше чем у вас сейчас)
У каждого светодиода 256 (8 бит) градаций красного, 256 зелёного и 256 синего - итого 24 бита или 3 байта. Как выводить эти биты определено в даташите на WS2812.
Но света от него у вас всё равно меньше чем от советской 500 ваттной лампочки (у меня когда-то в зале такая стояла, я глаза щурил когда входил в комнату).
Примерно также "прищуривает глаза" видеокамера, чтобы получить нормальное изображение.
?
т...
[/quote] правильно поняли. я этим модулем не пользовался и даже не знаю в каком виде он дает время на микроконтроллер. неужели придется мучаться. типа если первая цифра то.то на экран выводить то если вторая то то это итд.
1) текстовый (хотя каждый может писать по своему)
2) в виде 1 - это секунда (как на языке С, ну точнее в нём нет формата даты, по этому им так приходится выкручиваться)
3) в виде 1 - это день (как на языке Паскаль, собственно там только и существует тип Дата и Время)
и при первом обращении ты сразу поймёшь какой формат получил...
Ну а если ты о методе обращения, тогда надо знать на какой микросхеме у тебя реализовано:
1) DS1307 - подключается по I2C, и ардуина с ним работает аппаратно
2) DS1302 - своя трёхпроводная шина данных, и ардуина с ним работает програмно
https://www.youtube.com/watch?v=dCevx2I3S38
Мне наверно легче было бы сделать часы программой без всяких модулей. Только вот каждый раз отключая питание время будет сбрасываться.