Прямой ток 5 В на основе аналогового сигнала
Я хотел бы управлять многими светодиодами с моего Arduino — 12 или около того, — но у меня нет доступных цифровых контактов для этого. Одновременно должен гореть только один светодиод. Вместо этого я надеялся управлять ими с помощью аналогового контакта. Мне было интересно, есть ли какой-нибудь переключатель, который может принимать аналоговый сигнал и, в зависимости от значения, направлять ток 5 В на определенный светодиод.
Я понимаю, что мог бы использовать для этого второй Arduino, но стараюсь этого избегать.
Заранее спасибо за любую помощь!
@Rip Leeb, 👍2
Обсуждение3 ответа
Лучший ответ:
Это можно сделать в цифровом виде с помощью устройства, которое называется декодер. Например, 74154 принимает 4 входа и сопоставляет их с одним из 16 выходов (в зависимости от двоичного кодирования). входов). Из таблицы данных:
74HC154; Декодеры 74HCT154 принимают четыре активных HIGH двоичных адресных входа и обеспечивают 16 взаимоисключающих активных НИЗКИХ выходов.
Большой! Я нашел еще лучшие результаты, выполнив поиск «demuliplexer». Например, эта страница на сайте Arduino: http://playground.arduino.cc/Learning/4051 Спасибо!, @Rip Leeb
Если у вас есть 4 контакта, вы можете использовать charlieplexing для выборочного включения 12 светодиодов.
В качестве альтернативы вы можете использовать IC. Вы могли бы использовать тот, который предложил Грег.
Или вы можете использовать сдвиговый регистр. Для этого требуется всего 2 или 3 контакта, что позволит вам зажечь любой один или несколько светодиодов одновременно. Большинство из них имеют 8 выходов, но вы можете подключить один к другому (гирляндное соединение), поэтому с помощью 2 сдвиговых регистров вы можете по отдельности включать/выключать 16 светодиодов. Вы можете легко управлять ими с помощью команды Arduino shiftOut
.
Для связи с ним также можно использовать расширитель портов по I2C. Более сложный и немного более обширный. Но и более мощный. Для этого потребуется всего 2 контакта (A4 и A5).
Вы можете использовать некоторые аналоговые контакты для тактирования сдвигового регистра, назначив их цифровыми выходами. Также два аналоговых вывода также определены как I2C в зависимости от вашего кода. Вы можете использовать 2 платы PCF8574 или плату расширения PCF8575 и таким образом управлять ими. Их можно использовать как входы и выходы в любом порядке. Для этого можно использовать множество других фишек. Причина, по которой я предлагаю этот подход, заключается в том, что позже вы, вероятно, захотите использовать другие периферийные устройства, такие как ЖК-дисплеи и т. д.
- Есть ли способ воспроизводить звуки с Arduino без использования звукового экрана?
- В чем разница между analogWrite и digitalWrite?
- Какова частота PWM-выхода на Arduino
- Как вывести истинное аналоговое напряжение на выходной контакт
- Отправка значения с одного Arduino на другой
- Проблема с выходным контактом ШИМ (PWM)
- Пассивный зуммер работает с AnalogWrite(), но не с DigitalWrite(). Он также имеет постоянный статический шум.
- Не могу контролировать скорость двигателей постоянного тока с помощью analogWrite()
Пожалуйста, проверьте этот вопрос: http://arduinoprosto.ru/q/117/is-there-a-way-to-have-more-than-14-output-pins-on-arduino содержит множество ответов, перечисляющих несколько разных вариантов решения проблемы., @jfpoilpret
Следует отметить, что аналоговые входные контакты по-прежнему выводят только цифровые сигналы; только выводы с поддержкой ШИМ могут эмулировать аналоговые сигналы, и они распределены между цифровыми выводами., @BrettAM