100 светодиодов в ряд подключить к Arduino Mega 2560

New_user
New_user аватар
Offline
Зарегистрирован: 01.12.2014

Привет! 

Меня интересует наиболее красивое и наименее затратное решение, как подключить 100 smd светодиодов к Arduino Mega 2560.

Я это себе представляю так: матрица 10x10 светодиодов.  10  выводов (аноды, вертикаль) подключаем просто к цифровым выходам, 10 (катоды, горизонталь) подключаем к ШИМ выходам через транзюки (ну что б "минус" был, да ещё и широтно-импульсно-модулированный, яркость программно подкручивать, отдельно для каждого десятка). Это будет "светящаяся точка". А как бы организовать "светящийся столб"? (Если сделать динамическую индикацию столба, путём быстрых переключений "точки", наверное будет сильно мерцать?)

Подскажите пожалуйста, наиболее красивые и "правильные" решения этой задачи.

Спасибо! 

(что-то на подобии этого, только дешифратор на ИД1 не нужен, и ключи в анодах светодиодов тоже не нужны, smd светодионы на 20 mA контроллер потянет же?)

матрица светодиодная, 10x10

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Драйверы MR16 на чем-нибудь типа CL6807 с ножкой enable. Вот ее - контроллер точно потянет...

New_user
New_user аватар
Offline
Зарегистрирован: 01.12.2014

Да не, Вы меня не поняли. Мне не сто параллельно соединённых светодиодов запитать надо. Мне надо с ардуины зажигать 100 мелких (0805) светодиодов, причём каждый отдельно. Вобщем организовать логику отображения "светящийся столб". То, что без коммутирующих транзисторов не обойтись, я уже понял. А вот как сам "столб" организовать, сообразить не могу.

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

полагаю на ацп?

New_user
New_user аватар
Offline
Зарегистрирован: 01.12.2014

Сигнал аналоговый, на ацп. Сравнительно статичный - 20-30% за секунду. Соответственно и отображать так же не спеша.

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

Вывод веса непосредственно на цифровое табло не подходит, т.к. чтение будет происходить беглым взглядом, нужна именно "аналоговая" шкала. Наподобии проводного безмена =)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

мысль правильная, продолжай

axill
Offline
Зарегистрирован: 05.09.2011

New_user пишет:

Я это себе представляю так: матрица 10x10 светодиодов.  10  выводов (аноды, вертикаль) подключаем просто к цифровым выходам, 10 (катоды, горизонталь) подключаем к ШИМ выходам через транзюки (ну что б "минус" был,

в этой логике есть ошибка

если вы делаете матрицу 10х10 значит у вас что по цепи анодов, что по цепи катодов одновременно могут светить до 10 светодиодов. Поэтому если уж и ставить транзисторы то и по цепи анодов и по цепи катодов

Более того, у атмега328 ограничени - 200мА на все выходы. Если 200мА (на самом деле меньше ибо МК тоже кушать хочет) пустить на линейку 10 светодиодов то получится намного менее 20мА на светодиод. И это уже без запаса. Предполагаю вам это будет мало особенно учитывая динамическую индикацию.

Вообще-то можно каскадом поставить две микросхемы max7219, к одной подключить 8 на 8, к другой 6 на 6. от МК вам потребуются всего три пина, при этом вы сможете программно управлять ярксостью и каждым светодиодом в отдельности.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так насчет транзисторов уже разобрались. нормальная схема

axill
Offline
Зарегистрирован: 05.09.2011

jeka_tm пишет:

так насчет транзисторов уже разобрались. нормальная схема

мое замечание по тексту, а не по схеме

New_user
New_user аватар
Offline
Зарегистрирован: 01.12.2014

Погуглил по max7219 и первое что нашлось (http://radiohlam.ru/raznoe/max7219_7221.htm) привело меня в восторг! =)

Тогда можно обойтись и вовсе Arduino Pro Mini + 2х max7219 + INA125 + 100 разноцветных светодиодов.

Спасибо! Кажется это то, что я искал!

axill
Offline
Зарегистрирован: 05.09.2011

если будете ставить 7219 реемендую рядом с их ногами питания поставить конденсаторы на 100-470мкФ, так как они используют динамическую индикацию с ШИМом то генерят много помех по питанию

по этой же причине ардуину рекомендую питать или через LC фильтр (дроссель на 47-100мкГн и конденсатор на 10-100мкФ) или от отдельного стабилизатора

New_user
New_user аватар
Offline
Зарегистрирован: 01.12.2014

Спасибо, учту!

Вот http://rgb.kitiyo.com/2008/7219-app-circuit.html замечательный пример, как всё это дело отладить по-быстрому напрямую с компьютера через параллельный порт.

injener2000
Offline
Зарегистрирован: 02.12.2014

 

Питание светодиодов. Применение диодных ограничителей тока.
Простой стабилизатор тока – диодный ограничитель
Статическая, динамическая индикация и микроконтроллер
http://512volt.ru   

std
Offline
Зарегистрирован: 05.01.2012

На регистрах ещё можно, по 8 мА с выходов снимается (70 мА - максимум для выводов питания). Из плюсов - можно сделать на Uno, и не нужны транзисторы. Светики будут отдельно, т. е. не в матрице. Хотя если хочется 20 мА, то придётся. Сборками например, uln2003 там, ну или с экстримом - 2N7002 на каждый. Всё равно они дешёвые.

axill
Offline
Зарегистрирован: 05.09.2011

std пишет:

Из плюсов - можно сделать на Uno, и не нужны транзисторы. Светики будут отдельно, т. е. не в матрице.

в матричном подключении ничего плохого нет, особенно когда не надо делать прогамную динамическую индикацию. Количество соединений и деталий сокращается в разы. С MAX7219 получается - две микросхемы+конденсатор+токозадающий резистор+100светодиодов. Все. Делать можно не только на UNO, а хоть на tiny13. В вашем вариенте с 2n7002 - 100 транзисторов+двести резситоров (а по правильному все триста)+сто светодиодов+23 74HC595. Вот спасибо скажет тот кому это паять)

Ваш вариант хорош когда "надо слепить из того, что было"

Zahar
Zahar аватар
Offline
Зарегистрирован: 16.11.2013

Ты также можеш использовать TLC5940.Тем более что для Arduino есть готовые библиотеки. Я на этой микросхеме построил LED KUB 5X5X5.

New_user
New_user аватар
Offline
Зарегистрирован: 01.12.2014

Под MAX7219 тоже есть уже готовые библиотеки. TLC5940 - только 16 светодиодов на микруху. А вообще вариантов оказалось много, что очень радует)

Сейчас в поисках дешёвого тензодатчика, кг на 150, на растяжение-сжатие. А так уже решил что на ардуине сначала макетирую, откатаю, а потом просто портирую на подходящую мегу. Если разберусь конечно)

Спасибо за помощь!