Сколько отдельных огней может контролировать Arduino?


19

Я хочу использовать обычную плату Arduino для управления светодиодами - каково максимальное количество ламп, которыми я могу управлять отдельно от платы?

Есть ли учебник о том, как его подключить?


3
Вам необходимо указать, хотите ли вы управлять одним или несколькими светодиодами. Кроме того, я бы добавил «избегая последовательного управления и дополнительных микросхем». Ответ имеет тенденцию к бесконечности, если частота обновления или аппаратные части не являются ограничениями.
PPV

Ответы:


26

Я считаю, что использование Чарли-сплетения N линий контролирует N * (N-1) светодиодов. Есть хорошая статья в Википедии.

Мой друг, Джимми П. Роджерс, установил 126 светодиодов на щит Arduino. Он использует Чарли-плекс для управления светодиодами. Некоторая информация о его форуме находится по адресу - jimmieprodgers.com/2009/12/my-development-process/ (archive.org copy)


На последнем собрании группы пользователей Boston Arduino Джимми П. Роджерс нарисовал диаграмму Чарли-сплетения в виде матрицы с помеченными сетями. Схемы, нарисованные таким образом, казалось, хорошо помогли донести концепцию. Я создал пару похожих схем - см. Http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html.


узнал что-то новое сегодня; у тебя есть мой голос :-)
JonathanD

4
Имейте в виду, что при использовании этого метода одновременно можно включать только светодиоды N-1.
AngryEE

2
jimmieprodgers.comСсылка в этом ответе загружается с вирусами.
Вивек Махарадж

1
@vivekmaharajh: Я заменил ссылку ссылкой на копию archive.org оригинальной страницы.
Дэйв Твид

13

Вы можете использовать регистры сдвига ( http://en.wikipedia.org/wiki/Shift_register ), чтобы получить столько параллельных выходов из одного последовательного потока, сколько вы хотите.

Вы должны быть обеспокоены своими ограничениями власти. Я на самом деле никогда не использовал Arduino сам, но я предполагаю, что он имеет текущий предел, как PIC. Кроме того, регистры сдвига сами будут иметь ограничение по току. Если вы столкнетесь с этим, вам нужно будет использовать что-то вроде MOSFET, чтобы позволить вам управлять светодиодами, не потребляя много энергии непосредственно от вашего микроконтроллера.


7

Любой данный вывод микроконтроллера AVR допускает подачу до 40 мА, а общий источник питания или питание от микросхемы (т. Е. На землю и контакты Vcc) должны быть ниже 200 мА.

Charlieplexing - отличное решение для ситуаций, когда вам нужно много светодиодов, но можно обойтись только с одним светодиодом, горящим за раз. Стандартная плата Arduino (например, Duemilanove) предоставляет 17 «свободных» выводов ввода / вывода, не считая TX, RX, Reset или вывод 13. Таким образом, вы можете подключить 17 * 16 = 272 светодиода. Это может хорошо работать, особенно если вы светите одним светодиодом или быстро сканируете между несколькими. Но если вы попытаетесь осветить всю матрицу с помощью шаблона, вы обнаружите, что каждый из них включен (немного меньше) в 1/272 времени, поэтому, если ток вашего привода составлял 30 мА в любой данный момент, каждый светодиод средний ток будет около 0,1 мА - довольно тусклый.

Если вам не нужно так много светодиодов, но вместо этого нужно больше яркости, лучше использовать традиционное мультиплексирование. В этом случае вы используете некоторые из ваших строк как строки, а некоторые как столбцы в матрице. Если вы используете ток светодиода 10 мА, вы можете определить матрицу из 4 столбцов и 13 рядов, где все 4 светодиода в одном ряду могут быть включены одновременно, и вы будете сканировать ряды. Тогда каждый ряд находится на 1/13 времени при токе 10 мА, поэтому средний ток светодиода может достигать 0,76 мА, НО вы получаете только 4 * 13 = 104 светодиода. (Определенно ярче для каждого светодиода, чем для чарлиплексирования.)

Ограничение в последнем примере составляет 40 мА на вывод на AVR - так как каждый ряд приводных штырьков источника 4x10 = 40 мА. Если вы разрешите добавление внешних транзисторов (которые могут быть дешевыми и небольшими) к выходам строки, то вы можете избежать этого конкретного предела и стать ярче. Например, вы можете создать массив 8х9, с 8 строками и 9 столбцами, всего 72 светодиода. Один из 8 рядов включен одновременно, выбранный через транзистор. Одновременно могут быть включены до всех 9 светодиодов в данном ряду, управляемые при 20 мА, поэтому 180 мА поступает от транзистора, и вы находитесь ниже пределов тока AVR. Средний ток на светодиод теперь составляет 20 мА / 8 = 2,5 мА - обычно достаточно яркий.


6

Там очень хороший, подробный учебник здесь , который включает в себя раздел с помощью Arduino , чтобы запустить 8x8x8 светодиодный куб. (Не пропустите фильм на YouTube, который у них есть)

введите описание изображения здесь


Похоже, что-то, что я видел на выставке НЛО в Миннеаполисе около 1979 года или около того, но я помню, как где-то около 4096 миниатюрных лампочек. Кто-нибудь еще помнит, что видел что-то подобное?
суперкат

4

Существует множество расширителей ввода / вывода, которые используют шины SPI или I2C. С помощью одного модуля MSSP вы можете управлять практически бесконечным количеством цифровых выходов, таких как светодиоды.

См. Таблицы микрочипов или примечания по применению для следующих частей:
SPI - MCP23S08
I2C - MCP23008


1

При 17 выводах ввода / вывода, семнадцати NPN-транзисторах (эмиттерных повторителях для повышения тока) не должно быть особых проблем с отображением 272 светодиодов в произвольных комбинациях при коэффициенте заполнения 1/17 со средним током или 0,7 мА (200 мА / 272), ограниченным способность чипа сбрасывать 200 мА за раз. Добавление диода, чтобы получить падение на 0,7 В, позволит добавить еще 17 светодиодов (сокращая рабочий цикл до 1/18), хотя яркость не совсем будет соответствовать другим.


Можете ли вы уточнить, какую схему вы предлагаете здесь? Последователь эмиттера является топологией BJT.
Кевин Вермеер

@reemrevnivek: см. выше. Я мысленно подбрасывал несколько вариантов, и они запутались вместе. Если кто-то добавляет транзисторы для усиления привода на верхней стороне, а не привода на нижней стороне, они должны быть BJT. Если бы кто-то использовал транзисторы для обоих, мосфиты могли бы быть лучше.
суперкат

0

В то время как Windell Oskay приводит веский аргумент, что 104 светодиода - это максимум без добавления дополнительных транзисторов, Том Айго опубликовал фотографии матрицы из 128 светодиодов, напрямую управляемой одним Arduino Mega - без дополнительных транзисторов, дискретных или встроенных.

Том Айго «обманывает», кратко превышая «абсолютный максимальный ток на вывод», указанный в техническом описании?


2
Нет, он обманывает с помощью Arduino Mega. :) Мега имеет гораздо больше выводов ввода / вывода, чем обычный Arduino.
Кристофер Биггс

@unixbigot - грустно, я надеялся увидеть крутой взлом, включающий повторное использование булавки сброса для управления светодиодами или использование диодов.
Кевин Вермеер,

1
Ваша ссылка мертва, и вам, вероятно, следует дать ссылку на ответ Уинделла Оская . Это может показаться неважным, когда вы публикуете сообщение, но по мере появления новых ответов ваше сообщение становится отдаленным от другого.
Кевин Вермеера

@KevinVermeer: ​​ссылка исправлена ​​указанием на копию archive.org оригинальной страницы.
Дэйв Твид
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.