- Подключение микрофонного модуля к Arduino
- Назначение выводом микрофонного модуля
- Принцип работы микрофонного модуля
- Подключение микрофонного модуля у контроллеру Arduino
- Проверочный скетч для работы с микрофонным модулем
- Arduino и микрофон
- Описание
- Подключение
- Библиотеки
- Примеры
- Микрофон и Arduino
- Как подключить датчик звука (микрофон) к Arduino
- Инструкция по подключению датчика звука к Arduino
- 1 Электретный капсюльный микрофон CMA-4544PF-W
- 2 Схема подключения микрофона к Arduino
- 3 Скетч для считывания показаний электретного микрофона
- 4 «Эквалайзер»на Arduino
- 5 Скетч «эквалайзера»
- Полезный совет
- Arduino + микрофон
Подключение микрофонного модуля к Arduino
Данный проект будет использоваться в качестве индикатора акустического шума.
Данный модуль я купил у китайцев достаточно давно, после чего успешно забыл о нем, но сегодня он мне попался на глаза и я решил с ним разобраться.
Назначение выводом микрофонного модуля
Данный модуль имеет 4 вывода для подключения к внешним устройствам:
- AD – выход аналогового сигнала
- G – GND
- + — +5V
- D0 – выход дискретного сигнала
Принцип работы микрофонного модуля
На аналоговом выходе АО, в режиме реального времени, появляется напряжение, уровень которого зависит от уровня сигнала, принимаемого микрофоном.Когда уровень сигнала превышает порог, который устанавливается с помощью подстроечного резистора на плате модуля, то на дискретном выходе D0 появляется сигнала высокого уровня.
Подключение микрофонного модуля у контроллеру Arduino
- AD на микрофонном модуле подключаем к аналоговому пину A0 Arduino
- G на микрофонном модуле подключаем к GND Arduino
- + на микрофонном модуле подключаем к +5V Arduino
- D0 на микрофонном модуле подключаем к дискретному пину D9 Arduino (я его не буду использовать)
Внешне это будет выглядеть так:
Проверочный скетч для работы с микрофонным модулем
В данном скетче реализована передача данных о аналоговом уровне сигнала в Монитор порта.
const int analogInPin = A0;
int sensorValue = 0;
Источник
Arduino и микрофон
Описание
Arduino весьма неплохо измеряет напряжение, почему бы не подключить к ней микрофон? Просто голый микрофонный капсюль подключать нет смысла, для работы с ним понадобятся ещё некоторые электронные компоненты. У китайцев есть несколько вариантов микрофонных модулей, но самый хороший из них – на базе микросхемы MAX9812 (вынесен на картинке справа), такой и идёт в наборе GyverKIT:
- Усиление сигнала с микрофона до амплитуды 1.25V (выходной диапазон 0.. 2.5V)
- Встроенный АРУ – автоматическая регулировка усиления, выравнивает громкость тихих и громких звуков
- Подавление шума – сигнал с микрофона довольно чистый даже при не очень хорошем питании. Его очень приятно обрабатывать, да и рацию можно сделать
Пины и настройки модуля:
- GND и Vdd (V+): питание, 3.. 5V
- Out: выход сигнала для подключения к МК
- Gain (G): настройка усиления
- Никуда не подключен: 60dB
- На GND: 50dB
- На VCC: 40dB
- AR: настройка компрессии звука (время восстановления)
- Никуда не подключен: 1:4000 мс
- На VCC: 1:2000 мс
- На GND: 1:500 мс
Подключение
К питанию и на аналоговый пин:
- На схеме с Arduino (слева) можно переключить опорное напряжение (пин REF) на встроенный источник 3.3V, желательно через резистор на 10к. Соответственно в программе вызвать analogReference(EXTERNAL) . Это нужно для того, чтобы расширить диапазон чтения сигнала микрофона и обрабатывать его более точно (он выдаёт 0.. 2.5V)
- На схеме с Wemos (справа) мы подключаем микрофон на питание 3.3V. Сигнал он всё равно выдаёт 0.. 2.5V, что очень хорошо: у Wemos как раз 3.3V – верхняя граница напряжения на аналоговый пин A0
Библиотеки
Модуль выдаёт аналоговый сигнал, то есть его достаточно опрашивать стандартными средствами Arduino для получения сырого сигнала. Но полезные библиотеки всё таки есть:
- Если микрофон используется для измерения громкости звука, то можно воспользоваться библиотекой амплитудного анализа VolAnalyzer, которая обработает звук и преобразует громкость в нужный диапазон, а также будет автоматически подстраивать чувствительность при изменении среднего уровня громкости
- Clap – библиотека для распознавания хлопков в ладоши, удобно использовать совместно с VolAnalyzer
- Для частотного анализа звука можно использовать библиотеку FHT (только для AVR)
Примеры
Откроем монитор порта и скажем что-нибудь в микрофон
Заведём похожий пример, но с библиотекой VolAnalyzer: выведем приведённую “громкость” звука и построим график:
И получим гораздо более применимые для проектов значения:
Источник
Микрофон и Arduino
Подключение микрофона к Ардуино – несложная базовая процедура, которая позволит создать полноценные, очень увлекательные аудио проекты. В них вы можете задействовать устройства, которые будут переводить звуковой сигнал в цифровой, фиксировать наличие звука, измерять его громкость (ну а далее все зависит от ваших возможностей и предпочтений).
Микрофонный модуль (конденсаторный ∕ электретный микрофон) – девайс простой. Состоит обычно из компактной платы, на которой расположены порты подключения к контроллерам Ардуино (например, Nano). Там же имеется звуковой усилитель, резистор и электронный микрофон, особо чувствительный к звуку. К слову, регулятором чувствительности можно легко и просто настраивать чувствительность микрофона, а также решать, от какого уровня шума будет срабатывать ваш датчик в дальнейшем.
Подключение модуля выглядит следующим образом:
Конечно же мы рассмотрим несколько проектов, чтобы ознакомиться с практичностью применения подобного датчика. Начнем небольшой «разминки» – определим интенсивность звука. Для этой схемы подключения (смотрите скриншот ниже) нам понадобятся такие аппаратные компоненты:
- плата расширения Arduino UNO;
- датчик звука с микрофоном (типа KY-038);
- макетная плата;
- светодиод;
- резистор;
- перемычки.
Загружаем скетч для проверки работоспособности сборки:
Никаких особых библиотек мы не использовали – все супер-просто!
При желании можно собрать и настроить простейший эквалайзер. Обратите внимание на схему:
Пример программной прошивки:
А еще можно создать своими руками светильник, который будет включаться по хлопку в ладоши и много чего другого. Пробуйте, экспериментируйте!
Мы рассказали сегодня о том, как можно подключить датчик звука к Ардуино. Надеемся, информация была вам полезна! До скорой встречи!
Источник
Как подключить датчик звука (микрофон) к Arduino
Подключим модуль с звуковым датчиком – микрофоном CMA-4544PF-W – к Arduino.
Инструкция по подключению датчика звука к Arduino
- Arduino UNO или иная совместимая плата;
- модуль с электретным капсюльным микрофоном CMA-4544PF-W или аналогичный;
- 3 светодиода (зелёный, жёлтый и красный, вот из такого набора, например);
- 3 резистора по 220 Ом (вот отличный набор резисторов самых распространённых номиналов);
- соединительные провода (рекомендую вот такой набор);
- макетная плата (breadboard);
- персональный компьютер со средой разработки Arduino IDE.
1 Электретный капсюльный микрофон CMA-4544PF-W
Электретный микрофон CMA-4544PF-W, который является основой модуля, реагирует на звуковые волны с частотами от 20 Гц до 20 кГц. Микрофон является всенаправленным, т.е. чувствителен к звуку, приходящему со всех направлений, с чувствительностью -44 дБ. Более подробно об устройстве и принципе действия электретных микрофонов можно почитать в статье «Устройство и принцип работы электретных микрофонов».
Мы воспользуемся готовым модулем, в котором присутствует микрофон, а также минимально необходимая обвязка. Приобрести такой модуль можно здесь.
2 Схема подключения микрофона к Arduino
Модуль содержит в себе электретный микрофон, которому необходимо питание от 3 до 10 вольт. Полярность при подключении важна. Подключим модуль по простой схеме:
- вывод «V» модуля – к питанию +5 вольт,
- вывод «G» – к GND,
- вывод «S» – к аналоговому порту «A0» Arduino.
3 Скетч для считывания показаний электретного микрофона
Напишем программу для Arduino, которая будет считывать показания с микрофона и выводить их в последовательный порт в милливольтах.
Для чего может понадобиться подключать микрофон к Arduino? Например, для измерения уровня шума; для управления роботом: поехать по хлопку или остановиться. Некоторые даже умудряются «обучить» Arduino определять разные звуки и таким образом создают более интеллектуальное управление: робот будет понимать команды «Стоп» и «Иди» (как, например, в статье «Распознавание голоса с помощью Arduino»).
4 «Эквалайзер»на Arduino
Давайте соберём своеобразный простейший эквалайзер по приложенной схеме.
5 Скетч «эквалайзера»
Немного модифицируем скетч. Добавим светодиоды и пороги их срабатывания.
Эквалайзер готов! Попробуйте поговорить в микрофон, и увидите, как загораются светодиоды, когда вы меняете громкость речи.
Полезный совет
Значения порогов, после которых загораются соответствующие светодиоды, зависят от чувствительности микрофона. На некоторых модулях чувствительность задаётся подстроечным резистором, на моём модуле его нет. Пороги получились 2100, 2125 и 2150 мВ. Вам для своего микрофона придётся определить их самим.
Источник
Arduino + микрофон
В данной статье рассматривается частный случай подключения микрофона к Arduino. Всё написанное также верно и для клонов Arduino, например Freeduino.
В статье встречаются технические термины, для понимания которых могут быть не бесполезны статьи Использование прерываний Arduino, Таймеры-счётчики 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-терминала командой
где /dev/ttyUSB0 — это путь к USB-устройству Arduino. Выход из screen производится нажатием Ctrl+A , затем Ctrl+\ и ответом y на запрос подтверждения выхода. Либо отключением Arduino от USB.
Калибровку удобно производить, снимая сигнал с ползунка потенциометра. После этого можно подать на вход схемы сигнал от микрофона и посмотреть, насколько результат совпадает с ожидаемым.
В схеме присутствуют два потенциометра, подключенные к входам Analog In 1 и 2 . В скетче они используются для регулировки фильтра и уровня реверберации соответственно.
Фильтрация сигнала требуется по той причине, что регулировка уровня реверберации приводит к тому, что при достаточно больших уровнях громкости усилителя и реверберации происходит самовозбуждение системы. Без регулировки (операции умножения 8-битного текущего значения в буфере на 7-битное значение уровня реверберации) этого не происходит. С фильтром же у меня микрофон не «заводится» даже, если поднести его вплотную к динамику.
Скетч захватывает сигнал с входа АЦП, затем сигнал обрабатывается обрезным фильтром ВЧ четвёртого порядка, на него накладывается эффект реверберации, затем сигнал выводится на вывод широтно-импульсного модулятора (ШИМ) Digital 11 , к которому подключен 8-Омный динамик с усилителем класса D. Текст скетча с комментариями приводится ниже:
Источник