Датчик шума используется для слежения за уровнем шума или обнаружения громких сигналов: хлопков, стуков или свиста.
Микрофон преобразует звуковые колебания в колебания электрического тока. Если этот сигнал напрямую подключить к аналоговым входам микроконтроллера, такого как Arduino, результат скорее всего будет неудовлетворительным. Сигнал с микрофона предварительно необходимо усилить, избавиться от отрицательной полуволны и сгладить сигнал. Все эти действия выполняет электронная обвязка модуля.
Почему мы не можем просто взять любой микрофон? Этому есть несколько причин.
Во-первых, сигнал от микрофона очень слаб. Настолько, что, если мы подключим его к аналоговому входу Arduino, то analogRead
всегда будет возвращать 0
. Перед тем как использовать, сигнал с микрофона необходимо усилить.
Во-вторых, даже усиленный звуковой сигнал — это всегда колебания. Поэтому показания микрофона очень зависят от того, в какой момент времени произошло измерение напряжения микроконтроллером. Даже при самом громком хлопке analogRead
может вернуть 0
.
Как видим, даже измерение максимальных значений амплитуды не даст четкую информацию об уровне громкости. Чтобы получить эту информацию, нужно делать измерения максимально часто и подвергать эти данные математической обработке. Численной характеристикой громкости является площадь под графиком звуковой волны. Именно её и «считает» электронная обвязка микрофона.
Потенциометр регулирует коэффициент усиления усилителя сигнала с микрофона. Он бывает полезен, если необходимо изменить условия срабатывания вашего устройства без изменения его прошивки. Чем выше чувствительность модуля, тем выше доля помех в полезном сигнале датчика. Мы рекомендуем начинать работу с модулем при среднем положении потенциометра. В таком случае чувствительность модуля будет легко изменить в любую сторону.
Модуль подключается к управляющей электронике двумя трёхпроводными шлейфами.
Назначение контактов трёхпроводного шлейфа:
Вторым шлейфом с пина S снимается сигнал аналогового микрофона.
Отобразим показания датчика шума и микрофона на экране компьютера. В качестве управляющего микроконтроллера возьмём Arduino.
#define SOUND_PIN A5 #define NOISE_PIN A4 void setup() { // открываем монитор Serial-порта Serial.begin(9600); } void loop() { // считываем показания микрофона int soundValue = analogRead(SOUND_PIN); // считываем показания уровня шума int noiseValue = analogRead(NOISE_PIN); Serial.print(soundValue); Serial.print("\t\t"); Serial.println(noiseValue); }