Как мне управлять несколькими сотнями отдельных светодиодов с помощью Arduino (s)?


10

Я работаю над проектом электроники, который включает в себя сотни светодиодов. (Говоря о шести-семи сотнях светодиодов ... много, я знаю.) Есть ли способ управлять таким количеством светодиодов с помощью одной или пары Arduinos? Я хотел бы иметь возможность получать доступ к каждому светодиоду / управлять им по отдельности, поскольку я хочу нанести светодиоды на настенную карту мира. Затем я свяжу Arduino с Google Analytics, и когда кто-нибудь перейдет на мой сайт из определенного места в мире, ближайший к их региону светодиод загорится почти в реальном времени.

Любая помощь будет оценена. Спасибо! Я пытался изучить некоторые из них и прочитать о мультиплексировании и чарли-сплетении, но кажется, что они достигают максимума в 100 или около того? Я предполагаю, что мне понадобится внешнее оборудование / компоненты, чтобы иметь возможность управлять таким количеством светодиодов, но что именно мне нужно, чтобы это произошло? Кто-нибудь еще когда-нибудь создавал такую ​​большую светодиодную матрицу?

Ответы:


9

Когда вы мультиплексируете большое количество светодиодов по отдельности, обычным способом является использование матрицы N x M. Время делится на N шагов, на каждом шаге вы активируете одну из N строк строки и строк столбцов, которые соответствуют светодиодам, которые вы хотите включить. Обратите внимание, что каждая из строк строки может переносить M кратный ток светодиода, что требует некоторой буферизации. Каждый светодиод горит только 1 / N от времени, поэтому для поддержания нормальной яркости необходимо увеличить текущую N-кратную величину. Большинству светодиодов это не нравится. Чарлиплексирование не практично в этой ситуации из-за больших токов.

Из вашего вопроса я понимаю, что вы хотите включить только 1 светодиод одновременно? В этом случае с Чарлиплексом все в порядке. ОК с 31 выводом ввода / вывода может управлять 900 светодиодами. Звучит так, будто созревание станет кошмаром ...


Обновление 5 лет спустя: нормальное мультиплексирование или Charlieplexing хорошо, когда у вас слишком много времени, но когда мне приходилось управлять сотнями светодиодов, я бы купил длинную полосу светодиодов WS2801.


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

Напряжение, падающее на светодиод, фиксируется, как и выходное напряжение Arduino (вероятно, 5 В, для некоторых типов 3,3 В). Использование более высокого тока с меньшим рабочим циклом обычно уменьшает срок службы светодиодов.
Вутер ван Ооиджен

9

Вы можете использовать дешевый и легко найденный сдвиговый регистр 74HC595 (или аналогичный), чтобы легко управлять сотнями светодиодов, используя всего несколько выводов от Arduino.

Есть даже учебник по этому вопросу на сайте Arduino!

Последовательное параллельное смещение с 74HC595

Сдвиг и 595 фишек

В какой-то момент у вас могут кончиться булавки на плате Arduino, и вам потребуется расширить их с помощью сдвиговых регистров. Этот пример основан на 74HC595. Спецификация ссылается на 74HC595 как «8-битный сдвиговый регистр с последовательным входом, последовательным или параллельным выходом с выходными защелками; 3 состояния». Другими словами, вы можете использовать его для управления 8 выходами одновременно, занимая всего несколько контактов на вашем микроконтроллере. Вы можете связать несколько регистров вместе, чтобы расширить ваш вывод еще больше.


Это было бы много сдвиговых регистров, но это сработало бы :) Вам потребовалось бы около 88 (700 светодиодов / 8 светодиодов на чип) сдвиговых регистров и только 1 мкКю.
Йохан

1
Не забывайте о дополнительных логических драйверах, поскольку 88 входов - это достаточно много для обработки.
Игнасио Васкес-Абрамс

2

Я бы построил это по модульному принципу. Максима 6960 будет управлять 64 светодиодами для вас, хотя это немного дорого. Они управляются через последовательный интерфейс, и вы можете подключить до 256 из них вместе.

7218/7221 также будет работать.


2

Немного запоздалый ответ на этот вопрос, но вот 528 светодиодов Charlieplex, отключенных от одного PICAXE 40X2. Было бы до 930 светодиодов, если бы все контакты были предназначены для работы.

Сборка: http://www.picaxeforum.co.uk/entry.php?25-The-PICaxe-orrery

Видео: http://www.youtube.com/watch?v=82LvqiaH-iA

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


1

Я не уверен, является ли мой ответ хорошим или нет ... но почему не говорить о полосах адресных светодиодов WS2811 ??

Мы хотим сделать светодиодную матрицу для отображения текста. Здесь есть проект ( https://www.pjrc.com/teensy/td_libs_OctoWS2811.html ), выполненный на Teensy, который почти идентичен Arduino.

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

Но опять же, я не уверен, что мой ответ хорош ...


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

0

В недавнем вопросе у нас была хорошая дискуссия о вождении многих светодиодов. Мой ответ там, кажется, имеет прямое отношение к вашей проблеме здесь. Смотрите ответ здесь:

Светодиодные фонари дальнего следования


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

0

Основываясь на информации на http://bildr.org/?s=shift+register о сдвиговом регистре 74H595 с Arduino Uno, в котором говорилось, что «если у вас 1000 из них соединены вместе», проект был запущен на светодиодном дисплее с 320 светодиодов. Когда я получил более 100 светодиодов, они начали мерцать и, в конце концов, зажгли Arduino.

Поэтому я поговорил с техподдержкой в ​​Sparkfun, которая продала мне разделительные доски для 74H595. Он сказал, что одновременно можно включить только пять или шесть светодиодов. Поэтому я вернулся и перечитал статью в BLDR и понял, что вы можете управлять тысячами светодиодов, используя 74H595 / Arduino, но вы можете иметь только дюжину или около того в любой момент времени. (Это имеет смысл, потому что Arduino будет выдавать 200 мА через 5 вольт, а каждый светодиод потребляет 20 мА, так что около десяти - это все, что он будет безопасно питать)

Были замечены транзисторы, которые могут быть включены током 1 мА. Если это правда, если бы можно было разработать схему, которая управляет транзисторами, которые имеют намного более высокое напряжение / ток коллектора для потока эмиттера. Тогда можно использовать комбинацию Arduino / 74H595 для управления транзисторами в цепи с большим током.

Аллен в Далласе

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.