Интернет-магазин «Неглупый Дом»
Модуль MAX4466 — усилитель сигнала электретного микрофона с регулируемым усилением. Arduino следит за резкими пиками громкости на его выходе и переключает реле при обнаружении хлопка.
Микрофон на MAX4466 выдаёт переменное напряжение вокруг среднего уровня, колеблющееся в такт звуку. Хлопок создаёт короткий резкий скачок амплитуды, заметно превышающий фоновый шум — именно резкость пика (а не громкость) удобно детектировать по сравнению с порогом.
Главная сложность — не спутать хлопок с несколькими срабатываниями: после пика сигнал ещё "звенит" затухающими колебаниями, которые могут засчитаться как второй хлопок. Поэтому после срабатывания есть короткая "глухая" пауза.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
const int MIC_PIN = A0;
const int RELAY_PIN = 2;
const int THRESHOLD = 150;
const unsigned long COOLDOWN = 600;
bool relayState = false;
unsigned long lastTrigger = 0;
int baseline = 512;
void setup() {
Serial.begin(9600);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
long sum = 0;
for (int i = 0; i < 50; i++) { sum += analogRead(MIC_PIN); delay(2); }
baseline = sum / 50;
}
void loop() {
int raw = analogRead(MIC_PIN);
int deviation = abs(raw - baseline);
if (deviation > THRESHOLD && millis() - lastTrigger > COOLDOWN) {
relayState = !relayState;
digitalWrite(RELAY_PIN, relayState ? HIGH : LOW);
lastTrigger = millis();
}
}
Дополнительных библиотек не требуется — только `analogRead()`. Калибровка фона выполняется один раз при старте, включайте схему в той тишине, в которой она будет работать.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 222 ₽ 200 ₽ (экономия 22 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.