Не думал, что помехи у микрофона будут такими большими. Хотелось "отлавливать" хлопки в ладоши, но у микрофона очень сильные скачки на помехах. Если смотреть данные с порта, то значения в нормальном состоянии примерно 40-80, но каждые секунд 5 происходит скачок аж до 200. И в этом вся проблема, если увеличивать порог срабатывания на хлопок, то хлопком это уже будет сложно назвать, скорей "отбей себе руки", если же ничего не менять происходит куча ложных срабатываний. Как можно выйти из этого положения? Спасибо.
Да, у меня тоже с ложными срабатываниями проблема. Пытаюсь бороться путем аппаратной настройки (на плате есть потенциометр), программной задержкой (delay) и экранированием. Пока получается плохо... PS. Еще есть небольшая разница, куда питание подключать: 5 или 3.3 V.
Не работал с этим датчиком, могу ошибаться, но мб попробовать обычную для борьбы с помехами математику? Усреднение показаний с некой дискретизацией. Хотя если всплески по времени совпадают с хлопком, то это будет непросто.
Аналоговые датчики всегда отличались сильной зашумленностью. Основных способов борьбы с шумом два: аппаратный и программный. По сути дела оба представляют собой фильтр низких частот. В аппаратном случае это просто RC-цепочка. Я использую резистор 5.1 кОм и конденсатор 0.1 мкФ. Для звука это примерно соответствует частоте среза 300 Гц. В общем, в зависимости от вида датчика может потребоваться подкорректировать номиналы. Программно - проведение измерения несколько раз и нахождение средней величины. Какой именно средней: арифметической, геометрической или медианы - зависит от специфики датчика и сигнала. Можно сделать комбинацию из средней арифметической и медианы: отбросить какой-то процент наименьших и наибольших значений, а для оставшихся найти среднее арифметическое. По поводу специфики: для звука тоже есть стандартные приемы выделения нужного сигнала - определить спектр сиграла, который требуется детектировать, и пропускать входной сигнал через фильтр, который пропускает только те частоты, что есть в спектре нужного сигнала.