Почему светодиоды влияют на аналоговый вход?
Поэтому я работаю над проектом по управлению светодиодной лентой RGB с помощью микрофона или датчика звука с помощью Arduino Nano
. Я использую светодиодную ленту 5050 RGB
вокруг 120 светодиодов и управляю ими с помощью простой транзисторной схемы для каждого канала R, G и B, затем подключаю базу транзисторов к резисторам и ШИМ-выходам Arduino. А затем я использую звуковой датчик KY-038
(я использую аналоговый выходной вывод) и подключаю его к Arduino A0
.
Проблема в том, что когда я не подключал светодиоды, микрофон работал правильно. Я обработал аналоговый вход, поставил фильтр и порог. Когда я подключил светодиоды, показания A0
нарушаются переходом светодиода (например, от 0% ШИМ к 50% ШИМ или ВКЛ.). В результате мое аналоговое считывание определило это как колебание напряжения, распознало его как звук и запустило светодиоды, которые затем колебались без какого-либо внешнего звука. Если я отключал светодиоды, он работал правильно, например, я менял его на встроенный светодиод Arduino, он включался в соответствии с внешним звуком.
Почему это происходит? Я не думаю, что они используют один и тот же таймер, и я также использую правильный источник питания и конденсатор, чтобы обеспечить достаточную мощность.
Мой проект похож на этот проект.
@juliussin, 👍1
Обсуждение2 ответа
Какую модель светодиода вы используете? 5050 - это просто форм-фактор. Однако я думаю, что проблема связана с энергопотреблением. Хорошо известный WS2812B (он же Neopixel от Adafruit) может потреблять около 50 мА. Рассматривая 120LEDs, вы можете достичь важного уровня тока (схема, поддерживающая более 1A, должна быть правильно спроектирована). Внезапное изменение тока может легко привести к появлению шума во всей цепи. Решение должно использовать внешний источник питания, предназначенный для светодиода, совместно используя GND с вашим Arduino.
Не WS2812B, только RGB LED 5050 с токоограничивающим резистором, поэтому он имеет только 4 контакта для общего анода, R, G и B. Я использую источник питания 5 В с максимальным 2А, и я добавил конденсатор 100 мкФ (не рассчитал это, только надеюсь, что это работает, но это не так). Таким образом, подключение осуществляется от ПК (для последовательного монитора) к Mini USB, а затем VIN к источнику питания 5V. Влияет ли на это и использование макета?, @juliussin
Попробуйте снять 5 В с источника питания с VIN-вывода. В любом случае 5V - это слишком низкое напряжение для линейного регулятора. И вы уже предоставляете 5V через USB., @Gerben
Да Vin должен быть между 6-12В, иначе регулятор не сможет работать, @fabiuz7
Я думаю, что это из-за энергопотребления.
Если светодиоды потребляют много энергии, светодиод на Arduino (обычно мини-красный светодиод) погаснет или погаснет. Поэтому, прежде чем подключить светодиоды, проверьте мини-красный светодиод, который находится на Arduino, и после подключения светодиодов снова проверьте их. Если красный светодиод погас или погас, то проблема должна быть в энергопотреблении.
Подключите 12v или 5v к vin для питания Arduino, а также к светодиодам Важно то, что вы не должны подключать светодиоды к Arduino 5v.
- Как управлять встроенными светодиодами Arduino Nano 33 BLE Sense?
- Подключить светодиодную плату RGB к Arduino
- Я не могу установить правильную конфигурацию звукового модуля
- Питание светодиодной ленты - Сколько ампер?
- Улучшенное циклическое переключение цветов RGB.
- Управление цифровой адресной светодиодной лентой RGB 12 В с помощью Arduino
- MAX30100 не работает
- Количество мигающих светодиодов с датчиком LDR
попробуйте использовать МОП-транзисторы вместо bjt; они не потребляют никакого / (ок, столько же) тока от MCU., @dandavis