100 светодиодов в ряд подключить к Arduino Mega 2560
- Войдите на сайт для отправки комментариев
Привет!
Меня интересует наиболее красивое и наименее затратное решение, как подключить 100 smd светодиодов к Arduino Mega 2560.
Я это себе представляю так: матрица 10x10 светодиодов. 10 выводов (аноды, вертикаль) подключаем просто к цифровым выходам, 10 (катоды, горизонталь) подключаем к ШИМ выходам через транзюки (ну что б "минус" был, да ещё и широтно-импульсно-модулированный, яркость программно подкручивать, отдельно для каждого десятка). Это будет "светящаяся точка". А как бы организовать "светящийся столб"? (Если сделать динамическую индикацию столба, путём быстрых переключений "точки", наверное будет сильно мерцать?)
Подскажите пожалуйста, наиболее красивые и "правильные" решения этой задачи.
Спасибо!
(что-то на подобии этого, только дешифратор на ИД1 не нужен, и ключи в анодах светодиодов тоже не нужны, smd светодионы на 20 mA контроллер потянет же?)
http://www.atmel.com/images/doc2549.pdf
368 страница
Драйверы MR16 на чем-нибудь типа CL6807 с ножкой enable. Вот ее - контроллер точно потянет...
Да не, Вы меня не поняли. Мне не сто параллельно соединённых светодиодов запитать надо. Мне надо с ардуины зажигать 100 мелких (0805) светодиодов, причём каждый отдельно. Вобщем организовать логику отображения "светящийся столб". То, что без коммутирующих транзисторов не обойтись, я уже понял. А вот как сам "столб" организовать, сообразить не могу.
В вышепреведённой схеме, управление 10х10 вроде бы используется для динамического зажигания отдельных светодиодов. Просто я не уверен, что бар из 100 светодиодов будет нормально читаться быстрым взглядом, если использовать динамическую индикацию.
на вход какой сигнал будет подаваться и как быстро будет меняться входной сигнал?
полагаю на ацп?
Сигнал аналоговый, на ацп. Сравнительно статичный - 20-30% за секунду. Соответственно и отображать так же не спеша.
Собственно говоря, сигнал с тензодатчика, обработанный INA125U. Бар из светодиодов - индикатор веса. Ну и там попутно на оставшие выходы прицепить пищалку (индикатор выхода за пределы), ещё парочку разноцветных больших светодиодов (минималка, рабочий вес, превышение).
Вывод веса непосредственно на цифровое табло не подходит, т.к. чтение будет происходить беглым взглядом, нужна именно "аналоговая" шкала. Наподобии проводного безмена =)
мысль правильная, продолжай
Я это себе представляю так: матрица 10x10 светодиодов. 10 выводов (аноды, вертикаль) подключаем просто к цифровым выходам, 10 (катоды, горизонталь) подключаем к ШИМ выходам через транзюки (ну что б "минус" был,
в этой логике есть ошибка
если вы делаете матрицу 10х10 значит у вас что по цепи анодов, что по цепи катодов одновременно могут светить до 10 светодиодов. Поэтому если уж и ставить транзисторы то и по цепи анодов и по цепи катодов
Более того, у атмега328 ограничени - 200мА на все выходы. Если 200мА (на самом деле меньше ибо МК тоже кушать хочет) пустить на линейку 10 светодиодов то получится намного менее 20мА на светодиод. И это уже без запаса. Предполагаю вам это будет мало особенно учитывая динамическую индикацию.
Вообще-то можно каскадом поставить две микросхемы max7219, к одной подключить 8 на 8, к другой 6 на 6. от МК вам потребуются всего три пина, при этом вы сможете программно управлять ярксостью и каждым светодиодом в отдельности.
так насчет транзисторов уже разобрались. нормальная схема
так насчет транзисторов уже разобрались. нормальная схема
мое замечание по тексту, а не по схеме
Погуглил по max7219 и первое что нашлось (http://radiohlam.ru/raznoe/max7219_7221.htm) привело меня в восторг! =)
Тогда можно обойтись и вовсе Arduino Pro Mini + 2х max7219 + INA125 + 100 разноцветных светодиодов.
Спасибо! Кажется это то, что я искал!
если будете ставить 7219 реемендую рядом с их ногами питания поставить конденсаторы на 100-470мкФ, так как они используют динамическую индикацию с ШИМом то генерят много помех по питанию
по этой же причине ардуину рекомендую питать или через LC фильтр (дроссель на 47-100мкГн и конденсатор на 10-100мкФ) или от отдельного стабилизатора
Спасибо, учту!
Вот http://rgb.kitiyo.com/2008/7219-app-circuit.html замечательный пример, как всё это дело отладить по-быстрому напрямую с компьютера через параллельный порт.
Питание светодиодов. Применение диодных ограничителей тока.
Простой стабилизатор тока – диодный ограничитель
Статическая, динамическая индикация и микроконтроллер
http://512volt.ru
На регистрах ещё можно, по 8 мА с выходов снимается (70 мА - максимум для выводов питания). Из плюсов - можно сделать на Uno, и не нужны транзисторы. Светики будут отдельно, т. е. не в матрице. Хотя если хочется 20 мА, то придётся. Сборками например, uln2003 там, ну или с экстримом - 2N7002 на каждый. Всё равно они дешёвые.
Из плюсов - можно сделать на Uno, и не нужны транзисторы. Светики будут отдельно, т. е. не в матрице.
в матричном подключении ничего плохого нет, особенно когда не надо делать прогамную динамическую индикацию. Количество соединений и деталий сокращается в разы. С MAX7219 получается - две микросхемы+конденсатор+токозадающий резистор+100светодиодов. Все. Делать можно не только на UNO, а хоть на tiny13. В вашем вариенте с 2n7002 - 100 транзисторов+двести резситоров (а по правильному все триста)+сто светодиодов+23 74HC595. Вот спасибо скажет тот кому это паять)
Ваш вариант хорош когда "надо слепить из того, что было"
Ты также можеш использовать TLC5940.Тем более что для Arduino есть готовые библиотеки. Я на этой микросхеме построил LED KUB 5X5X5.
Под MAX7219 тоже есть уже готовые библиотеки. TLC5940 - только 16 светодиодов на микруху. А вообще вариантов оказалось много, что очень радует)
Сейчас в поисках дешёвого тензодатчика, кг на 150, на растяжение-сжатие. А так уже решил что на ардуине сначала макетирую, откатаю, а потом просто портирую на подходящую мегу. Если разберусь конечно)
Спасибо за помощь!