Я хочу использовать обычную плату Arduino для управления светодиодами - каково максимальное количество ламп, которыми я могу управлять отдельно от платы?
Есть ли учебник о том, как его подключить?
Я хочу использовать обычную плату Arduino для управления светодиодами - каково максимальное количество ламп, которыми я могу управлять отдельно от платы?
Есть ли учебник о том, как его подключить?
Ответы:
Я считаю, что использование Чарли-сплетения 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.
jimmieprodgers.com
Ссылка в этом ответе загружается с вирусами.
Вы можете использовать регистры сдвига ( http://en.wikipedia.org/wiki/Shift_register ), чтобы получить столько параллельных выходов из одного последовательного потока, сколько вы хотите.
Вы должны быть обеспокоены своими ограничениями власти. Я на самом деле никогда не использовал Arduino сам, но я предполагаю, что он имеет текущий предел, как PIC. Кроме того, регистры сдвига сами будут иметь ограничение по току. Если вы столкнетесь с этим, вам нужно будет использовать что-то вроде MOSFET, чтобы позволить вам управлять светодиодами, не потребляя много энергии непосредственно от вашего микроконтроллера.
Любой данный вывод микроконтроллера 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 мА - обычно достаточно яркий.
Там очень хороший, подробный учебник здесь , который включает в себя раздел с помощью Arduino , чтобы запустить 8x8x8 светодиодный куб. (Не пропустите фильм на YouTube, который у них есть)
Существует множество расширителей ввода / вывода, которые используют шины SPI или I2C. С помощью одного модуля MSSP вы можете управлять практически бесконечным количеством цифровых выходов, таких как светодиоды.
См. Таблицы микрочипов или примечания по применению для следующих частей:
SPI - MCP23S08
I2C - MCP23008
При 17 выводах ввода / вывода, семнадцати NPN-транзисторах (эмиттерных повторителях для повышения тока) не должно быть особых проблем с отображением 272 светодиодов в произвольных комбинациях при коэффициенте заполнения 1/17 со средним током или 0,7 мА (200 мА / 272), ограниченным способность чипа сбрасывать 200 мА за раз. Добавление диода, чтобы получить падение на 0,7 В, позволит добавить еще 17 светодиодов (сокращая рабочий цикл до 1/18), хотя яркость не совсем будет соответствовать другим.
В то время как Windell Oskay приводит веский аргумент, что 104 светодиода - это максимум без добавления дополнительных транзисторов, Том Айго опубликовал фотографии матрицы из 128 светодиодов, напрямую управляемой одним Arduino Mega - без дополнительных транзисторов, дискретных или встроенных.
Том Айго «обманывает», кратко превышая «абсолютный максимальный ток на вывод», указанный в техническом описании?