Сколько отдельных источников света может контролировать Arduino

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

Есть ли руководство по его подключению?


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

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


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


14
$ begingroup $

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

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

Поделиться
Улучшите это ответ
ответ дан

$ 16 февр. endgroup $

добавить комментарий |

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

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


8
$ begingroup $

Любой данный вывод микроконтроллера 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, поскольку каждый вывод выводит рядный источник 4×10 = 40 мА. Если вы разрешите добавлять внешние транзисторы (которые могут быть дешевыми и небольшими) к выходам строк, вы можете избежать этого конкретного ограничения и сделать светлее. Например, вы можете создать массив 8×9 с 8 строками и 9 столбцами, всего 72 светодиода. Одна из 8 строк включена за раз, выбранная через транзистор. До всех 9 светодиодов в заданном ряду могут быть включены одновременно при токе 20 мА, так что 180 мА поступает от транзистора, и вы остаетесь ниже пределов тока AVR. Средний ток на светодиод теперь составляет 20 мА/8 = 2,5 мА — обычно достаточно яркий.

Поделиться
Улучшить этот ответ
ответил 21 февраля 2010 г., 22:01

$ endgroup $

добавить комментарий |

Любой данный вывод микроконтроллера 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, поскольку каждый вывод выводит рядный источник 4×10 = 40 мА. Если вы разрешите добавлять внешние транзисторы (которые могут быть дешевыми и небольшими) к выходам строк, вы можете избежать этого конкретного ограничения и сделать светлее. Например, вы можете создать массив 8×9 с 8 строками и 9 столбцами, всего 72 светодиода. Одна из 8 строк включена за раз, выбранная через транзистор. До всех 9 светодиодов в заданном ряду могут быть включены одновременно при токе 20 мА, так что 180 мА поступает от транзистора, и вы остаетесь ниже пределов тока AVR. Средний ток на светодиод теперь составляет 20 мА/8 = 2,5 мА — обычно достаточно яркий.


6
$ begingroup $

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

Поделиться
Улучшите этот ответ
отредактировано ноя 07 ’11 в 6:03
sblair
22622 серебряных знака77 бронзовых знака
ответил 10 марта ’11 в 3:52

$ endgroup $

  • $ begingroup $ Похоже на то, что я видел на выставке НЛО в Миннеаполисе примерно в 1979 году или около того, но я помню, что это было где-то около 4096 миниатюрных лампочек.. Кто-нибудь еще помнит, что видел что-то подобное? $ endgroup $ — supercat 10 мар. ’11 в 07:35
добавить комментарий |

Здесь есть очень хорошее подробное руководство, которое включает раздел об использовании Arduino для запуска светодиодного куба 8x8x8. (Не пропустите их видео на YouTube)


5
$ begingroup $

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

См. Спецификации Microchip или примечания по применению для следующих частей:
SPI — MCP23S08
I2C — MCP23008

Поделиться
Улучшите этот ответ
ответил 7 апр. ’10 в 17:25

$ endgroup $

добавить комментарий |

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

См. Спецификации Microchip или примечания по применению для следующих частей:
SPI — MCP23S08
I2C — MCP23008


1
$ begingroup $

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

Поделиться
Улучшить этот ответ
отредактировано 19 марта 2011 в 3:16
ответил 10 марта ’11 в 3:32

$ endgroup $

  • $ begingroup $ Не могли бы вы пояснить, какой тип схемы вы предлагаете здесь? Эмиттерный повторитель представляет собой топологию BJT. $ endgroup $ — Кевин Вермеер 19 марта 2011 г., 1:51
  • $ begingroup $ @reemrevnivek: см. правку выше. Я мысленно подбрасывал несколько вариантов, и они перепутались. Если кто-то добавляет транзисторы для усиления привода на высокой стороне, но не для привода на низкой стороне, они должны быть BJT. Если бы для обоих использовались транзисторы, МОП-транзисторы могли бы быть лучше. $ endgroup $ — supercat 19 мар. ’11 в 3:17
добавить комментарий |

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


1
$ begingroup $

При использовании цифровых светодиодов, таких как WS2812 aka «Neopixels» , стандартный Arduino Uno может управлять до 600 пикселей RGB без необходимости мультиплексировать что-либо 🙂

Единственное ограничение здесь — это оперативная память платы. Плата с большим объемом ОЗУ, такая как Arduino Mega с 8 КБ ОЗУ, может контролировать до 2400 пикселей по сравнению с Uno, у которой ОЗУ всего 2 КБ.

Вы можете найти хороший обзор здесь: https://www.eerkmans.nl/powering-lots-of-leds-from-arduino/

И больше информации о том, как работать с Neopixels здесь: https://learn.adafruit.com/adafruit-neopixel-uberguide

Поделиться
Улучшить этот ответ
ответил 13 января ’20 в 4:58

$ endgroup $

добавить комментарий |

При использовании цифровых светодиодов, таких как WS2812, также известного как «Neopixels», стандартный Arduino Uno может контролировать до 600 пикселей RGB без необходимости мультиплексирования. ничего 🙂

Единственное ограничение здесь — это оперативная память платы. Плата с большим объемом ОЗУ, такая как Arduino Mega с 8 Кбайт ОЗУ, может управлять до 2400 пикселей по сравнению с Uno, у которой всего 2 Кбайт ОЗУ..

Здесь вы можете найти хороший обзор : https://www.eerkmans.nl/powering-lots-of-leds-from-arduino/

И больше информации о том, как работать с Neopixels здесь: https://learn.adafruit .com/adafruit-neopixel-uberguide


0
$ begingroup $

Хотя Винделл Оскей приводит хороший аргумент, что 104 светодиода — это максимум без Добавляя дополнительные транзисторы, Том Иго опубликовал фотографии матрицы из 128 светодиодов, напрямую управляемых одной Arduino Mega — без дополнительных транзисторов, дискретных или встроенных.

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

Поделиться
Улучшить этот ответ
отредактировано 18 марта ’17 в 13:19
Вики сообщества

2 версии, 2 пользователя 80%
Дэвидкари

$ endgroup $

  • 2
    $ begingroup $ Нет, он жульничает, используя Arduino Mega. 🙂 Мега имеет гораздо больше контактов ввода-вывода, чем нормальный ардуино. $ endgroup $ — Кристофер Биггс, 10 марта 2011 г., 12:56
  • $ begingroup $ @unixbigot — К сожалению, я надеялся увидеть классный хакер, включающий повторное использование вывода сброса для управления светодиодами или использование сброса диода .. $ endgroup $ — Кевин Вермеер, 19 марта 2011 г., 16:32
  • 1
    $ begingroup $ Ваша ссылка мертва, и вам, вероятно, следует дать ссылку на ответ Винделла Оская. Это может показаться неважным, когда вы публикуете, но по мере того, как появляется больше ответов, ваше сообщение становится отдаленным от другого. $ endgroup $ — Кевин Вермеер, 19 марта 2011 г., 16:33
  • $ begingroup $ @KevinVermeer: ​​ссылка исправлена ​​путем указания на archive.org копию исходной страницы. $ endgroup $ — Дэйв Твид 18 мар. ’17 в 13:19
добавить комментарий |

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

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

Оцените статью
Botgadget.ru
Добавить комментарий