Я хочу выключать светодиод только тогда, когда вход низкий в течение длительного периода времени, а не когда в звуковом сигнале есть взлеты и падения
Мой проект - обнаружение детского плача, когда ребенок плачет, светодиод должен включаться, а когда он останавливается, он должен выключаться, но я хочу, чтобы он выключался только тогда, когда ребенок перестал плакать, а не когда есть взлеты и падения в звуке. При высоком уровне детского звука загорается светодиод, а при низком — гаснет. Я хочу, чтобы светодиод оставался включенным и выключал его только тогда, когда ребенок полностью перестанет плакать. Если входной сигнал от звукового датчика остается низким в течение длительного периода времени, светодиод должен погаснуть, как мне написать код для этого условия?
@Abigail Pearlin Rajkumari, 👍0
Обсуждение1 ответ
Это очень связано с алгоритмом устранения дребезга (используется для устранения дребезга переключателей/клавиш), но расценивайте "дребезг" кнопки как крик. Время намного больше (от секунд до даже минут).
Посмотрите здесь объяснение устранения отказов:
https://www.arduino.cc/en/tutorial/debounce
- Как только ребенок начнет плакать, вы хотите, чтобы светодиод (почти) немедленно включился, поэтому используйте короткое время "отключения дребезга" (или в данном случае: включение плача) для нарастания фронта (начала плача), что-то в мс или секунду, может быть (я предполагаю, что это критично по времени).
- Однако для обнаружения прекращения плача вам, вероятно, потребуется гораздо больше времени, может быть, даже минута (но я оставляю точное время на ваше усмотрение).
@jsotola ... Я думаю, что это устранение дребезга, но не устранение дребезга кнопки, а устранение дребезга «плака», где время «устранения дребезга» может составлять даже секунды или минуты (по крайней мере, когда останавливается, чтобы поплакать). Но я должен изменить свой ответ, чтобы удалить BlinkWithoutDelay, я думаю, потому что это больше «противодребезговые» (слишком короткие) крики (или в основном останавливающие крики)., @Michel Keijzers
теперь, когда я думаю об этом, вы правы насчет разоблачения, @jsotola
@jsotola Спасибо ... только есть другое время спада и нарастания «отклонения»., @Michel Keijzers
- Как считать показания датчика звука и включить датчик с датчиком воды, если показания выше порогового значения и при обнаружении воды в течение 2 минут?
- Печать string and integer LCD
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Как подключить ардуино к разъему для наушников?
- Отправьте несколько значений int из Python в Arduino, используя pySerial
- Глобальные переменные занимают много места в динамической памяти.
- (Код ультразвукового датчика: такого файла или каталога нет)
посмотрите пример скетча
blinkWithoutDelay
... подумайте о том,если обнаружен крик, то предыдущаяMillis = currentMillis
, @jsotolaвопрос кажется мне ясным и в рамках, не уверен, почему он был закрыт, @haresfur
Какой датчик звука вы используете? Какой у него выходной сигнал? Цифровой? Аналог? Пожалуйста, покажите нам скетч, который вы уже написали. Не могли бы вы рассказать нам, что такое «длительный период времени»? Это одна минута, 5 минут, один час?, @VE7JRO
Ваш вопрос действительно неясен. Где именно ваша проблема в написании условия? Пожалуйста, покажите нам код, который у вас уже есть, так как реальная реализация условия сильно зависит от остальной части вашего кода., @chrisl