Подключить несколько RGB-светодиодов, используя минимальное количество контактов ШИМ на Arduino?

В настоящее время у меня есть анод RGB, подключенный к контактам 11, 10 и 9 PWM на моем Arduino. Однако я хотел бы добавить еще 3 светодиода в свой проект, но я не хочу обязательно занимать каждый отдельный вывод ШИМ (я все еще хочу прикрепить экран). Есть ли способ подключить все 4 светодиода и при этом использовать только минимальное количество контактов? Имейте в виду, что я хочу использовать все 12 резисторов для 4 светодиодов. Да, и все светодиоды будут делать то же самое (все они будут красными, все станут синими и т. д.), если это поможет.

Вот как моя доска выглядит сейчас:

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

У меня есть три транзистора NTE123AP , которые я могу использовать для этого проекта.

PS Я приложил файл .fzz, так что если кто-то из вас захочет отредактировать схематическое изображение, это будет очень просто. На самом деле это было бы лучше, так как я новичок в этом, и было бы легче следовать! :)

Индивидуальное управление или все с одинаковым цветом (все красные с одинаковой яркостью или, по сути, 12 отдельных светодиодов?) Первое можно сделать только с помощью транзисторов, а для второго потребуется регистр сдвига, расширитель i2c / spi или микросхема драйвера светодиодов.
По сути, я хочу 4 светодиода RGB, и все они будут делать одно и то же. Например, я хочу синхронизировать звук со светом. Таким образом, при воспроизведении дорожки 1 все 4 светодиода будут светиться красным, а при воспроизведении дорожки 2 — фиолетовым, если дорожка 3 — синим и т. д. Надеюсь, это поможет! Я упомянул 12 резисторов, потому что, как и на изображении, которое я разместил, мне нужен резистор для каждого контакта светодиода, потому что я не хочу жертвовать яркостью. Надеюсь, это поможет!

Ответы (2)

Довольно просто. Просто на npn транзисторах. Дублировать на каждый цветовой канал.

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

Ваш транзистор может потреблять до 600 мА непрерывно. При 20 мА на светодиод, по 4 на канал, это всего 80 мА. Этого более чем достаточно.

Но убедитесь, что ваш блок питания поддерживает это. 80 * 3, это 240 мА только на светодиоды, не считая остальной части Arduino, базы транзисторов и всего остального, что вы используете.

OP также предоставил диаграмму ответа Fritzing:введите описание изображения здесь

@CloudyDays 3 канала (один красный, один зеленый, один синий). 4 светодиода. Извините, я не использую fritzing, а просто Battery Plus — это VCC, Arduino_PWM_PIN — тот же, который вы использовали, а Battery — это Gnd.
@CloudyDays В этом случае да, vcc равно 5v. И эта установка в основном правильная. Во-первых, транзистор, убедитесь, что он соответствует распиновке база/эммитер/коллектор ваших транзисторов, не все используют одинаковую распиновку. И у вас есть все четыре светодиода с одним резистором (на цвет). Это может сработать, но это не лучший вариант. Но в целом правильно. Что касается fritzing, я все еще думаю, что это хороший инструмент, как и любой другой, но просто не использую его сам.
@Passerby, спасибо, просто чтобы уточнить, лучше ли использовать всего 3 резистора для 4 светодиодов или мне следует использовать 12 (в этом сценарии). Кроме того, мне нужен только 1 транзистор или все 3?
@CloudyDays, пока работают 3 резистора, работает плохо. 12 предпочтительнее. И вам нужны все три транзистора, по одному на каждый цвет/канал. В противном случае красный, синий и зеленый каналы были бы одинаковыми, поэтому вы бы управляли ими как одним светодиодом (белым).
@Passerby О, я вижу. Просто чтобы убедиться, что я понимаю, как это сейчас? PS Если я случайно вставил транзистор не той стороной (CBE вместо EBC), что может произойти? Спасибо за все что ты сделал для меня! У меня просто проблемы с пониманием того, что такое передняя и задняя часть транзисторов (плоская с одной стороны и полукруглая с другой).
@CloudyDays Это работает. Просто убедитесь, что коллектор/средний контакт также подключен (сейчас к нему ничего не подключается). Что касается транзистора, то плоская часть, где находится надпись, обычно является «передней». И если бы вы подключили его ecb, как у вас, вы могли бы замкнуть ШИМ на землю, без нагрузки. Возможно сгорел порт ардуино. Подключение его ПБС (как в, коллектор к земле), ну, не слишком уверенно.
Итак, я, наконец, подключил его в физическом плане, но я заметил, что мои цвета rgb ведут себя забавно. Может ли это быть из-за типа светодиодов? У меня есть анодные светодиоды.
@CloudyDays Общие анодные светодиоды в этой настройке противоположны вашей первоначальной настройке. PWM Logic High/1/On/5v включен, Logic Low/0/Off/0v выключен. В вашей исходной настройке, когда штыри pwm действовали как заземление светодиода, Logic High был отключен.
@CloudyDays позволяет поговорить в этом чате: chat.stackexchange.com/rooms/8243/arduino-rgb-setup , если вам нужна дополнительная помощь, чтобы не засорять комментарии

Эти диаграммы/изображения могут быть лучше, чтобы визуально увидеть, что происходит:

ОБЩИЙ АНОД RGB с ТРАНЗИСТОРОМ

ОБЩИЙ КАТОД RGB с ТРАНЗИСТОРОМ

Примечание

@Passerby: Где вы взяли это схематическое изображение в своем посте?

Добро пожаловать на EE.SE. Спасибо, что выложили схемы. Как правило, вопросы к другим пользователям публикуются в виде комментариев, а не ответов. Не нужно много повторений, чтобы получить привилегию комментирования.
извините, пока не знаю, как это здесь работает .. но это мое изображение, поэтому я и спросил, не могу публиковать изображения до 10 точек повторения или что-то в этом роде.