Як я можу контролювати кілька сотень індивідуальних світлодіодів за допомогою Arduino (s)?


10

Я працюю над проектом з електроніки, який передбачає сотні світлодіодів. (Якщо говорити вгору від шести до семисот світлодіодів ... багато, я знаю.) Чи є спосіб керувати цією кількістю світлодіодів за допомогою одного або пари Arduinos? Мені хотілося б мати доступ до / контролювати кожен світлодіод окремо, тому що я хочу зробити, це нанести сюди світлодіоди на настінну карту світу. Потім я буду взаємодіяти Arduino з Google Analytics, і коли хтось перейде на мій сайт з певного місця в світі, світлодіод, найближчий до їх регіону, загориться майже в реальному часі.

Будь-яка допомога буде вдячна. Дякую! Я спробував дослідити деякі і прочитав про мультиплексування та шарлі-плексинг, але, здається, максимум на 100 або близько того? Я припускаю, що мені знадобиться зовнішнє обладнання / компоненти, щоб мати можливість керувати багатьма світлодіодами, але що саме мені потрібно, щоб це сталося? Хтось ще створював світлодіодну матрицю такої великої?

Відповіді:


9

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

З вашого запитання я розумію, що ви хочете включити лише 1 світлодіод одночасно? У такому випадку у Charlieplexing немає нічого поганого. UC з 31 вводу-виводу контактами може керувати 900 світлодіодами. Звучить, що конкрукція буде кошмаром ...


Оновлення через 5 років: Звичайне мультиплексування чи Чарліплексинг приємно, коли у вас занадто багато часу під рукою, але коли мені довелося зараз контролювати 100 світлодіодів, я б придбав довгу смугу світлодіодів WS2801.


Я думаю, що мені є що додати. Ну, якщо проблема з високим струмом, тоді використовуйте високу напругу. як 9V, але дуже короткий час 10mS і правильно розрахований робочий цикл. Оскільки він також використовує збільшення тривалості життя світлодіодних ламп.
Стандартний Сандун

Напруга, що падає на світлодіод, є фіксованою, а також вихідна напруга Arduino (ймовірно, 5В, для деяких типів 3,3 В). Використання більш високого струму з меншим робочим циклом, як правило, скорочує час експлуатації світлодіодів.
Wouter van Ooijen

9

Ви можете використовувати дешевий і легко знайдений реєстр зрушень 74HC595 (або подібний), щоб легко керувати сотнями світлодіодів, використовуючи лише кілька штифтів від ардуїно.

Є навіть навчальний посібник з цього приводу на сайті Arduino!

Послідовний до паралельного зсуву-виходу з 74HC595

Shifting Out та чіп 595

Десь чи в інший момент у вас може залишитися шпильки на вашій платі Arduino, і вам доведеться розширити її за допомогою регістрів змін. Цей приклад заснований на 74HC595. Лист даних посилається на 74HC595 як "8-бітний регістр зсуву послідовного введення, послідовного або паралельного виходу з вихідними фіксаторами; 3-стан". Іншими словами, ви можете використовувати його для керування 8 виходами одночасно, лише забираючи кілька контактів на мікроконтролері. Ви можете зв'язати кілька реєстрів разом, щоб ще більше розширити свій вихід.


Це було б багато регістрів змін, але це спрацювало б :) Вам знадобиться приблизно 88 (700 світлодіодів на 8 мікросхем) регістри змін і лише 1 мкю.
Йоган

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

2

Я б будував це модульно. Maxim's 6960 буде використовувати 64 світлодіоди, хоча це трохи дорого. Вони керуються послідовним інтерфейсом, і ви можете з'єднати до 256 разом.

7218/7221 також запрацював.


2

Трохи запізніла відповідь на це запитання, але ось 528 світлодіодів Charlieplexed від одного 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.

Я думаю, що він використовує концепцію ШІМ (Pulse Width Modulation), і таким чином дозволяє надсилати складні дані до світлодіодних смуг одним проводом.

Але знову ж таки, я не впевнений, чи моя відповідь хороша ...


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

0

Ми нещодавно обговорили питання про управління багатьма світлодіодами в нещодавньому запитанні тут. Моя відповідь там, здається, безпосередньо стосується вашої проблеми тут. Дивіться відповідь тут:

Водіння світлодіодів на великій відстані


4
Чи можете ви донести відповідну інформацію та пристосувати її до цього питання, якщо ваша відповідь ідеально відповідає обом, це знак точного дубліката.
Кортук

0

На основі інформації на http://bildr.org/?s=shift+register про реєстр зрушень 74H595 з Arduino Uno, який сказав, що "якщо у вас 1000 зв'язаних разом", проект розпочався на світлодіодному дисплеї з 320 світлодіодів. Коли я вийшов понад 100 світлодіодів, погано мерехтів і врешті обсмажив Arduino.

Тому я розмовляв із технічною підтримкою Sparkfun, яка продала мені плати пробиву 74H595 Він сказав, що за один раз ви можете увімкнути лише п'ять-шість світлодіодів. Тому я повернувся і перечитав статтю в BLDR і зрозумів, що ти можеш керувати тисячами світлодіодів за допомогою 74H595 / Arduino, але ти можеш мати лише десяток і так далі в будь-який час. (Це має сенс, тому що Arduino дозволить 200mA через 5 вольт, і кожен світлодіод витягує 20mA, так що приблизно десять - це все, що він буде безпечно живити)

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

Аллен у Далласі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.