Как подключить микрофон к ардуино
Подключение микрофонного модуля к Arduino
В этой статье я опишу процесс подключение микрофонного модуля к контроллеру Arduino.
Данный проект будет использоваться в качестве индикатора акустического шума.
Данный модуль я купил у китайцев достаточно давно, после чего успешно забыл о нем, но сегодня он мне попался на глаза и я решил с ним разобраться.
Назначение выводом микрофонного модуля
Данный модуль имеет 4 вывода для подключения к внешним устройствам:
Принцип работы микрофонного модуля
На аналоговом выходе АО, в режиме реального времени, появляется напряжение, уровень которого зависит от уровня сигнала, принимаемого микрофоном.Когда уровень сигнала превышает порог, который устанавливается с помощью подстроечного резистора на плате модуля, то на дискретном выходе D0 появляется сигнала высокого уровня.
Подключение микрофонного модуля у контроллеру Arduino
Внешне это будет выглядеть так:
Проверочный скетч для работы с микрофонным модулем
В данном скетче реализована передача данных о аналоговом уровне сигнала в Монитор порта.
const int analogInPin = A0;
int sensorValue = 0;
Как подключить датчик звука (микрофон) к Arduino
Подключим модуль с звуковым датчиком – микрофоном CMA-4544PF-W – к Arduino.
Инструкция по подключению датчика звука к Arduino
1 Электретный капсюльный микрофон CMA-4544PF-W
Электретный капсюльный микрофон CMA-4544PF-W и модуль с микрофоном
Мы воспользуемся готовым модулем, в котором присутствует микрофон, а также минимально необходимая обвязка. Приобрести такой модуль можно здесь.
2 Схема подключения микрофона к Arduino
Модуль содержит в себе электретный микрофон, которому необходимо питание от 3 до 10 вольт. Полярность при подключении важна. Подключим модуль по простой схеме:
3 Скетч для считывания показаний электретного микрофона
Напишем программу для Arduino, которая будет считывать показания с микрофона и выводить их в последовательный порт в милливольтах.
Для чего может понадобиться подключать микрофон к Arduino? Например, для измерения уровня шума; для управления роботом: поехать по хлопку или остановиться. Некоторые даже умудряются «обучить» Arduino определять разные звуки и таким образом создают более интеллектуальное управление: робот будет понимать команды «Стоп» и «Иди» (как, например, в статье «Распознавание голоса с помощью Arduino»).
4 «Эквалайзер»на Arduino
Давайте соберём своеобразный простейший эквалайзер по приложенной схеме.
Схема «эквалайзера» на Arduino, датчике звука и светодиодах
5 Скетч «эквалайзера»
Немного модифицируем скетч. Добавим светодиоды и пороги их срабатывания.
Эквалайзер готов! Попробуйте поговорить в микрофон, и увидите, как загораются светодиоды, когда вы меняете громкость речи.
Полезный совет
Значения порогов, после которых загораются соответствующие светодиоды, зависят от чувствительности микрофона. На некоторых модулях чувствительность задаётся подстроечным резистором, на моём модуле его нет. Пороги получились 2100, 2125 и 2150 мВ. Вам для своего микрофона придётся определить их самим.
Arduino + микрофон
В данной статье рассматривается частный случай подключения микрофона к Arduino. Всё написанное также верно и для клонов Arduino, например Freeduino.
В статье встречаются технические термины, для понимания которых могут быть не бесполезны статьи Использование прерываний Arduino, Таймеры-счётчики Arduino и Как подключить к Arduino.
Дело в том, что в схеме Arduino питание цифровой и аналоговой цепей микроконтроллера производится по упрощённой схеме, без LC-фильтра между ними. И соответственно, всё, что происходит в цифровой части схемы, попадает в аналоговый сигнал, оцифровываемый с помощью АЦП.
Поэтому, подключая микрофон, я включил в цепь питания микрофона и операционного усилителя дроссель L1, что позволило заметно снизить количество шумов в сигнале.
В качестве схемы для подключения микрофона я взял за основу схему подключения микрофона из Application Note AVR335: Digital Sound Recorder with AVR and DataFlash. Микрофон подключал так называемый компьютерный, то есть со стерео-джеком 3.5-мм.
Саму схему я путём экспериментов полностью изменил, поскольку микросхема усилителя TL071, приводимая в Application Note, у меня от +5 Вольт работать не захотела, а в даташите я так и не смог найти минимальное напряжение, которое ей требуется. Поэтому использовал в качестве усилителя тот низковольтовый операционник, который имелся в запасе, а им оказался KA2209, который меня в своё время привлёк своей ценой и тем, что он требует однополярного напряжения. Но вообще-то это усилитель мощности и даже не аудио. Хотя с питанием от дросселя он меня даже удивил тем, что не шумит (без дросселя шумел довольно заметно). Так что я счёл его использование в данной схеме вполне приемлемым.
Для того, чтобы откалибровать схему, я подал на вход вместо сигнала от микрофона напряжение +5 Вольт, используя для отображения простой скетч, отображающий состояние АЦП на текстовом терминале, совместимом с VT100:
В linux после успешной компиляции и загрузки скетча в память микроконтроллера, можно вызвать эмулятор VT100-терминала командой
Калибровку удобно производить, снимая сигнал с ползунка потенциометра. После этого можно подать на вход схемы сигнал от микрофона и посмотреть, насколько результат совпадает с ожидаемым.
Фильтрация сигнала требуется по той причине, что регулировка уровня реверберации приводит к тому, что при достаточно больших уровнях громкости усилителя и реверберации происходит самовозбуждение системы. Без регулировки (операции умножения 8-битного текущего значения в буфере на 7-битное значение уровня реверберации) этого не происходит. С фильтром же у меня микрофон не «заводится» даже, если поднести его вплотную к динамику.
Как подключить датчик звука к Ардуино
Рассмотрим аналоговый датчик звука для Ардуино. Расскажем, как подключить датчик звука к микроконтроллеру Arduino, разберем программу для автоматического включения света от хлопка в ладоши и получения показаний датчика звука на последовательном мониторе порта Arduino IDE. Рассмотрим использование в программе тип данных boolean, который чато применяется в языке C++.
Датчик звука (микрофон) для Arduino
Состоит датчик из платы (смотри картинку ниже) на котором смонтированы порты подключения к Arduino Nano, усилитель звука, подстроечный резистор и электронный микрофон, чувствительный к звуку, приходящему во всех направлениях. Регулятором чувствительности (переменным резистором) можно настраивать чувствительность микрофона и выбирать от какого уровня шума будет срабатывать датчик.
Датчик звука Arduino для слежения за уровнем шума
Данная плата расширения для Arduino позволяет перевести звуковые колебания в цифровой сигнал. При колебании мембраны в микрофоне от звуковых волн, изменяется емкость его конденсатора, вследствие чего проявляется изменение напряжения на выходах датчика звука, соответствующее звуковому сигналу. Сенсор слева на картинке может отправлять цифровой и аналоговый сигнал.
Как подключить датчик звука к Arduino
Для этого занятия нам потребуется:
Датчик звука для Ардуино имеет на плате подписанные выходы (обозначение у каждого производителя может отличаться), но проблем с подключением датчика к Ардуино возникнуть не должно. Питание датчика производится от 5V, выход (OUT, S или AO) подключается к любому аналоговому входу на Arduino Uno, а выход DO к Pin 2, если требуется получать цифровой сигнал на Ардуино с датчика микрофона.
Фото. Как подключить датчик звука KY-037 к Arduino UNO
Чтобы сделать своими руками светильник, который будет включаться по хлопку в ладоши необходимо собрать электрическую схему из следующих элементов: светодиод с резистором, плата Arduino и датчик звука KY-037 для включения света своими руками. Светодиод можно подключить к любому выходу, в скетче мы использовали Pin 11. После сборки схемы, подключите Ардуино к компьютеру и загрузите скетч.
Как подключить датчик звука (микрофон) к Arduino
Подключим модуль с звуковым датчиком – микрофоном CMA-4544PF-W – к Arduino.
Инструкция по подключению датчика звука к Arduino
1 Электретный капсюльный микрофон CMA-4544PF-W
Электретный капсюльный микрофон CMA-4544PF-W и модуль с микрофоном
Мы воспользуемся готовым модулем, в котором присутствует микрофон, а также минимально необходимая обвязка. Приобрести такой модуль можно здесь.
2 Схема подключения микрофона к Arduino
Модуль содержит в себе электретный микрофон, которому необходимо питание от 3 до 10 вольт. Полярность при подключении важна. Подключим модуль по простой схеме:
3 Скетч для считывания показаний электретного микрофона
Напишем программу для Arduino, которая будет считывать показания с микрофона и выводить их в последовательный порт в милливольтах.
Для чего может понадобиться подключать микрофон к Arduino? Например, для измерения уровня шума; для управления роботом: поехать по хлопку или остановиться. Некоторые даже умудряются «обучить» Arduino определять разные звуки и таким образом создают более интеллектуальное управление: робот будет понимать команды «Стоп» и «Иди» (как, например, в статье «Распознавание голоса с помощью Arduino»).
4 «Эквалайзер»на Arduino
Давайте соберём своеобразный простейший эквалайзер по приложенной схеме.
Схема «эквалайзера» на Arduino, датчике звука и светодиодах
5 Скетч «эквалайзера»
Немного модифицируем скетч. Добавим светодиоды и пороги их срабатывания.
Эквалайзер готов! Попробуйте поговорить в микрофон, и увидите, как загораются светодиоды, когда вы меняете громкость речи.
Полезный совет
Значения порогов, после которых загораются соответствующие светодиоды, зависят от чувствительности микрофона. На некоторых модулях чувствительность задаётся подстроечным резистором, на моём модуле его нет. Пороги получились 2100, 2125 и 2150 мВ. Вам для своего микрофона придётся определить их самим.