Низкий выходной контакт используется для замыкания цепи светодиода 12 В?
У меня есть проект, который (частично) будет управлять 3 светодиодами, где светодиод аноды на 12В. Идея состоит в том, чтобы управлять каждым светодиодом, подключив каждый катод к резистору сопротивлением 650 Ом и подключите его к выводу Arduino DIO, который при необходимости устанавливается на выход LOW. Arduino VIN = те же 12 В с общая почва. Будут ли у меня какие-либо проблемы с Arduino?
@Ange Purs, 👍0
Обсуждение1 ответ
Нет, то, что вы предлагаете, не сработает. И это рискует повредить ваш Arduino.
Обычно вы включаете один транзистор, который Arduino использует для управления питанием светодиодов. Это снимет напряжение 12 В с Arduino и превратит выход в настоящий переключатель.
Проблема в том, что GPIO Arduino — это не просто один транзистор. Это (помимо прочего):
- Два дополнительных транзистора (это буква C в КМОП) для переключателей HIGH и LOW.
- ESD-диоды
- Входной буфер
Просто добавив один транзистор вот так:
12 В находятся на достаточном расстоянии от Arduino. Установка ВЫСОКОГО уровня на выходе включит транзистор, позволяя току течь на землю. Установите НИЗКИЙ уровень, выключите его, заблокируйте поток тока и выключите светодиоды.
Далее: максимальный постоянный ток GPIO Arduino составляет 25 мА. В идеале вы не хотите даже приближаться к этому. Добавляя транзистор, он действует как буфер и позволяет справляться с гораздо более высокими токами - и, следовательно, с большим количеством и более яркими светодиодами.
Кстати, R1 на этой схеме предназначен исключительно для того, чтобы транзистор выключался, когда Arduino не управляет активным выходом - например, когда он либо обесточен, либо работает загрузчик - или вы случайно иметь GPIO в режиме INPUT (по умолчанию).
Спасибо. Я знаю о транзисторном подходе, хотя я не рассматривал добавление R1 и использование МОП-транзистора. Каждый выход Arduino будет управлять только одним светодиодом. Мой первоначальный пост был мотивирован желанием минимизировать количество компонентов, необходимых для управления каждым светодиодом... и лучше понять ограничения ввода-вывода Arduino., @Ange Purs
- Питание светодиодной ленты - Сколько ампер?
- Несколько условий оператора if
- Светодиоды: разница между общим анодом и общим катодом
- Светодиод L продолжает гореть
- Улучшенное циклическое переключение цветов RGB.
- Плавное мигание светодиодов
- Остановить мигание светодиодов
- FastLED - Как управлять определенными светодиодами
Почему вы хотите это сделать? Хотите ли вы включать/выключать светодиод, изменяя цифровое состояние HIGH/LOW на выводе Arduino? Если да, то нет, это не сработает. В зависимости от потребляемой мощности светодиодов вы можете (i) использовать низкую мощность, управлять напрямую от Arduino, как в примере с Blink, (ii) высокую мощность, управлять через тот же код, но с транзистором между выводом ввода-вывода и светодиодом., @MichaelT
Это не работает. Когда вы установите вывод на выход LOW, светодиоды будут гореть (как вы хотите). Но если вы установите вывод на выход HIGH, напряжение составит 5 В, поэтому на светодиодах все еще будет 7 В (12 В - 5 В), и светодиоды будут гореть тускло. Если вы установите вывод на вход, напряжение на выводе станет около 12 В, что превышает допустимое напряжение. Ограничительные диоды внутри MCU будут фиксировать напряжение примерно до 5 В, поэтому светодиоды все равно будут гореть тускло, а внутренние фиксирующие диоды отключатся от перегрева, что может привести к разрушению всего MCU., @Gerben
Подробное объяснение Гербена — ПОЧЕМУ мой подход не сработает. Спасибо., @Ange Purs