Прямой ток 5 В на основе аналогового сигнала

Я хотел бы управлять многими светодиодами с моего Arduino — 12 или около того, — но у меня нет доступных цифровых контактов для этого. Одновременно должен гореть только один светодиод. Вместо этого я надеялся управлять ими с помощью аналогового контакта. Мне было интересно, есть ли какой-нибудь переключатель, который может принимать аналоговый сигнал и, в зависимости от значения, направлять ток 5 В на определенный светодиод.

Я понимаю, что мог бы использовать для этого второй Arduino, но стараюсь этого избегать.

Заранее спасибо за любую помощь!

, 👍2

Обсуждение

Пожалуйста, проверьте этот вопрос: http://arduinoprosto.ru/q/117/is-there-a-way-to-have-more-than-14-output-pins-on-arduino содержит множество ответов, перечисляющих несколько разных вариантов решения проблемы., @jfpoilpret

Следует отметить, что аналоговые входные контакты по-прежнему выводят только цифровые сигналы; только выводы с поддержкой ШИМ могут эмулировать аналоговые сигналы, и они распределены между цифровыми выводами., @BrettAM


3 ответа


Лучший ответ:

1

Это можно сделать в цифровом виде с помощью устройства, которое называется декодер. Например, 74154 принимает 4 входа и сопоставляет их с одним из 16 выходов (в зависимости от двоичного кодирования). входов). Из таблицы данных:

74HC154; Декодеры 74HCT154 принимают четыре активных HIGH двоичных адресных входа и обеспечивают 16 взаимоисключающих активных НИЗКИХ выходов.

,

Большой! Я нашел еще лучшие результаты, выполнив поиск «demuliplexer». Например, эта страница на сайте Arduino: http://playground.arduino.cc/Learning/4051 Спасибо!, @Rip Leeb


3

Если у вас есть 4 контакта, вы можете использовать charlieplexing для выборочного включения 12 светодиодов. charlieplexing

В качестве альтернативы вы можете использовать IC. Вы могли бы использовать тот, который предложил Грег.

Или вы можете использовать сдвиговый регистр. Для этого требуется всего 2 или 3 контакта, что позволит вам зажечь любой один или несколько светодиодов одновременно. Большинство из них имеют 8 выходов, но вы можете подключить один к другому (гирляндное соединение), поэтому с помощью 2 сдвиговых регистров вы можете по отдельности включать/выключать 16 светодиодов. Вы можете легко управлять ими с помощью команды Arduino shiftOut.

Для связи с ним также можно использовать расширитель портов по I2C. Более сложный и немного более обширный. Но и более мощный. Для этого потребуется всего 2 контакта (A4 и A5).

,

0

Вы можете использовать некоторые аналоговые контакты для тактирования сдвигового регистра, назначив их цифровыми выходами. Также два аналоговых вывода также определены как I2C в зависимости от вашего кода. Вы можете использовать 2 платы PCF8574 или плату расширения PCF8575 и таким образом управлять ими. Их можно использовать как входы и выходы в любом порядке. Для этого можно использовать множество других фишек. Причина, по которой я предлагаю этот подход, заключается в том, что позже вы, вероятно, захотите использовать другие периферийные устройства, такие как ЖК-дисплеи и т. д.

,