Меню

Arduino датчик звука микрофон

Датчик звука

Датчик позволяет через микрофон определить звук (шум), который превысит заданный уровень. Например, определить момент включения мотора, плача ребёнка и другие источники звука. Уровень шума определяется подстройкой потенциометра на модуле. Кроме того, на модуле есть светодиод, который начинает светиться при обнаружении звука. Также есть второй светодиод, показывающий питание. Иногда встречается название — датчик хлопков, такое определение точнее отражает характер работы.

Подстройка производится экспериментальным путём. Крутите отвёрткой в нужную сторону, пока не добьётесь желаемого результата.

Подключение очень простое — у модуля три вывода: питание 5В, земля и цифровой вывод.

Запустите скетч, откройте Serial Monitor и начинайте говорить. При обнаружении звука на экране появится надпись «Alarm! Alarm!». Данный скетч можно применять для определения ночного тыгыдыка кота в квартире. В реальной жизни чувствительность датчика желает лучшего, на хлопок реагирует, а на голос практически нет.

Модули с цифровым и аналоговым выводами

Также можно встретить модули, у которых четыре вывода: питание, земля, цифровой и аналоговый выводы. К ним относятся модели KY-030 (устар.), KY-037 (микрофон с высокой чувствительностью), KY-038 (конденсаторный микрофон).

Подключение у модулей одинаковое.

На модуле датчика должен загореться индикатор питания L1. Необходимо сначала подкрутить подстроечный резистор, настроив чувствительность датчика. В настройке чувствительности поможет индикатор L2. Если индикатор L2 при включении модуля тоже загорается, крутим подстроечный резистор против часовой стрелки до тех пор, пока не дойдём до момента затухания индикатора. Если же индикатор L2 находится в выключенном состоянии при включении модуля, значит крутим подстроечный резистор по часовой стрелке, пока не дойдём до момента, когда индикатор начнёт загораться. В итоге, нужно поймать момент, где чуть повернув подстроечный резистор в одну или другую сторону, индикатор стремиться потухнуть или загореться, и затем нужно повернуть совсем немного против часовой стрелки, чтобы индикатор L2 потух, но при хлопках в ладоши пытался загораться.

Скетч для цифрового вывода смотри выше. Для аналогового вывода напишите самостоятельно.

Включить по хлопку и выключить через несколько секунд

Напишем скетч, в котором будем включать свет по хлопку и выключать через определённое время.

Включить и выключать поочерёдно по хлопку

Напишем новый скетч с другой логикой — по первому хлопку включить светодиод, по повторному хлопку светодиод выключим.

Включаем светодиод по двойному хлопку

Следующий скетч поможет избежать случайных срабатываний, будем отслеживать парные хлопки — аналог двойного щелчка мыши.

Источник

Arduino и микрофон

Описание

Arduino весьма неплохо измеряет напряжение, почему бы не подключить к ней микрофон? Просто голый микрофонный капсюль подключать нет смысла, для работы с ним понадобятся ещё некоторые электронные компоненты. У китайцев есть несколько вариантов микрофонных модулей, но самый хороший из них – на базе микросхемы MAX9814 (вынесен на картинке справа), такой и идёт в наборе 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

Подключим модуль с звуковым датчиком – микрофоном 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 дБ. Более подробно об устройстве и принципе действия электретных микрофонов можно почитать в статье «Устройство и принцип работы электретных микрофонов».

Электретный капсюльный микрофон CMA-4544PF-W и модуль с микрофоном

Мы воспользуемся готовым модулем, в котором присутствует микрофон, а также минимально необходимая обвязка. Приобрести такой модуль можно здесь.

2 Схема подключения микрофона к Arduino

Модуль содержит в себе электретный микрофон, которому необходимо питание от 3 до 10 вольт. Полярность при подключении важна. Подключим модуль по простой схеме:

  • вывод «V» модуля – к питанию +5 вольт,
  • вывод «G» – к GND,
  • вывод «S» – к аналоговому порту «A0» Arduino.

Схема подключения электретного микрофона к Arduino

3 Скетч для считывания показаний электретного микрофона

Напишем программу для Arduino, которая будет считывать показания с микрофона и выводить их в последовательный порт в милливольтах.

Для чего может понадобиться подключать микрофон к Arduino? Например, для измерения уровня шума; для управления роботом: поехать по хлопку или остановиться. Некоторые даже умудряются «обучить» Arduino определять разные звуки и таким образом создают более интеллектуальное управление: робот будет понимать команды «Стоп» и «Иди» (как, например, в статье «Распознавание голоса с помощью Arduino»).

4 «Эквалайзер»на Arduino

Давайте соберём своеобразный простейший эквалайзер по приложенной схеме.

Схема «эквалайзера» на Arduino, датчике звука и светодиодах

5 Скетч «эквалайзера»

Немного модифицируем скетч. Добавим светодиоды и пороги их срабатывания.

Эквалайзер готов! Попробуйте поговорить в микрофон, и увидите, как загораются светодиоды, когда вы меняете громкость речи.

Полезный совет

Значения порогов, после которых загораются соответствующие светодиоды, зависят от чувствительности микрофона. На некоторых модулях чувствительность задаётся подстроечным резистором, на моём модуле его нет. Пороги получились 2100, 2125 и 2150 мВ. Вам для своего микрофона придётся определить их самим.

Источник

Взаимодействие Arduino с датчиком звука и управление устройствами с помощью хлопков

Не хотите добавить в свой следующий проект возможность слышать? Эти звуковые датчики недороги, просты во взаимодействии и способны обнаруживать звуки голоса, хлопки или стук в дверь. Вы можете использовать их для различных проектов, реагирующих на звуки, например, чтобы активировать освещение.

Читайте также:  Замена датчик заднего хода опель астра j

Взаимодействие Arduino с датчиком звука и управление устройствами с помощью хлопков

Вы знаете, как работают электретные микрофоны?

Внутри микрофона находится тонкая диафрагма, которая на самом деле представляет собой одну из пластин конденсатора. Вторая пластина – это задняя стенка, которая расположена близко к диафрагме и параллельна ей.

Рисунок 1 – Работа электретного микрофона

Когда вы говорите в микрофон, звуковые волны, создаваемые вашим голосом, ударяют диафрагму, заставляя ее вибрировать.

Когда в ответ на звук диафрагма начинает вибрировать, по мере того, как пластины становятся ближе друг к другу или дальше друг от друга, начинает изменяться и емкость.

При изменениях емкости изменяется и напряжение на пластинах, что позволяет измерить амплитуду звука.

Обзор аппаратного обеспечения

Звуковой датчик представляет собой небольшую плату, которая объединяет микрофон (50 Гц – 10 кГц) и схему обработки для преобразования звуковых волн в электрические сигналы.

Этот электрический сигнал подается на встроенный высокоточный компаратор LM393 для его оцифровки и выводится на выход (вывод OUT).

Рисунок 2 – Регулировка чувствительности датчика звука и компаратора

Для регулировки чувствительности выходного сигнала модуль содержит встроенный потенциометр.

С помощью этого потенциометра вы можете установить пороговое значение. Таким образом, когда амплитуда звука превысит это пороговое значение, модуль выдаст низкий логический уровень, в остальных случаях будет выдаваться высокий логический уровень.

Эта настройка очень полезна, когда вы хотите запустить какое-то действие при достижении определенного порога. Например, когда амплитуда звука пересекает пороговое значение (при обнаружении стука), вы можете активировать реле для управления освещением. Вот вам идея!

Совет: поворачивайте движок потенциометра против часовой стрелки, чтобы увеличить чувствительность, и по часовой стрелке, чтобы ее уменьшить.

Рисунок 3 – Светодиодные индикаторы питания и состояния

Помимо этого, модуль имеет два светодиода. Индикатор питания загорится, когда на модуль подается напряжение питания. Светодиод состояния загорится, когда на цифровом выходе будет низкий логический уровень.

Распиновка звукового датчика

У данного датчика звука только три вывода:

Рисунок 4 – Распиновка модуля звукового датчика

Вывод VCC подает питание на датчик. Рекомендуется питать датчик напряжением от 3,3 до 5 В.

GND для подключения земли.

Вывод OUT выдает высокий логический уровень, когда тихо, и низкий логический уровень, когда обнаруживается звук. Вы можете подключить его к любому цифровому выводу Arduino или напрямую к 5-вольтовому реле или другому подобному устройству.

Подключение звукового датчика с Arduino

Давайте подключим звуковой датчик к Arduino. Подключение довольно простое. Для начала подключите вывод VCC на модуле к выводу 5V на Arduino, а вывод GND на модуле – к выводу GND Arduino. Теперь подключите вывод OUT к цифровому выводу 7 на Arduino. Вот и всё!

На следующем рисунке показана схема соединений.

Рисунок 5 – Подключение датчика звука к Arduino

Калибровка датчика звука

Для получения точных показаний с вашего звукового датчика, рекомендуется сначала его откалибровать.

Для калибровки цифрового выхода (OUT) модуль содержит встроенный потенциометр.

Поворачивая движок потенциометра, вы можете установить пороговое значение. Таким образом, когда уровень звука превышает пороговое значение, светодиод статуса загорается, а на цифровой выход (OUT) выдается низкий логический уровень.

Теперь, чтобы откалибровать датчик, хлопайте рядом с микрофоном и подстраивайте потенциометр, пока вы не увидите, что светодиод состояния на модуле мигает в ответ на ваши хлопки.

Теперь ваш датчик откалиброван и готов к использованию.

Простой пример: обнаружение звука

Теперь, когда всё подключено, вам понадобится скетч, чтобы проверить эту схему в работе.

Читайте также:  Как снять датчик дождя у соренто

Следующий пример обнаруживает хлопки или щелчки и выводит сообщение в мониторе последовательного порта. Попробуйте скетч в работе, а затем мы рассмотрим его подробнее.

Если всё в порядке, то при обнаружении хлопка вы должны увидеть вывод в мониторе последовательного порта, похожий на приведенный ниже.

Рисунок 6 – Вывод работы скетча обнаружения хлопков

Объяснение

Скетч начинается с объявления вывода Arduino, к которому подключен вывод OUT датчика.

Затем мы определяем переменную с именем lastEvent , которая хранит время с момента обнаружения хлопка. Это поможет нам устранить ложные срабатывания.

В функции setup() мы определяем сигнальный вывод, к которому подключен датчик, как входной. А также настраиваем последовательную связь с компьютером.

В функции loop() мы сначала читаем состояние цифрового вывода датчика.

Когда датчик обнаруживает какой-либо звук, достаточно громкий, чтобы пересечь пороговое значение, логический уровень выходного сигнала становится низким. Но мы должны убедиться, что звук вызван хлопками, а не случайным фоновым шумом. Итак, мы ждем 25 миллисекунд. Если логический уровень на выводе остается низким в течение более 25 миллисекунд, мы заявляем, что обнаружен хлопок.

Управление устройствами с помощью хлопков

В нашем следующем проекте мы будем использовать звуковой датчик в качестве «детектора хлопков», который включает устройства, питающиеся от сети переменного тока, хлопком в ладоши.

В данном проекте для управления питанием устройств используется одноканальный модуль реле, который будет коммутировать переменное напряжение сети 220 В.

Схема соединений

Схема соединений в этом проекте очень проста.

Предупреждение:
Данная схема взаимодействует с ВЫСОКИМ переменным напряжением сети 220 В. Неправильное подключение или использование может привести к серьезным травмам или смерти. Поэтому данный проект предназначен для людей, имеющих опыт работы и знающих о мерах техники безопасности при работе с высоким переменным напряжением.

Сначала необходимо подать питание на датчик и модуль реле. Подключите их выводы VCC к выводу 5V на Arduino, и выводы GND к выводу GND на Arduino.

Затем подключите выходной вывод (OUT) звукового датчика к цифровому выводу 7 на Arduino, а управляющий вывод (IN) на модуле реле к цифровому выводу 8 Arduino.

Вам также необходимо поместить модуль реле в линию питания устройства, которым вы хотите управлять. Вам придется разрезать один провод в кабеле питания и подключить один конец отрезанного провода (идущий от вилки) к выводу COM (общий) модуля реле, а другой к выводу NO (нормально разомкнутый).

Схема соединений показана на следующем рисунке.

Рисунок 7 – Схема подключения датчика звука и модуля реле к плате Arduino

Код Arduino

Ниже приведен скетч для управления устройствами с помощью хлопков.

После того, как вы загрузили программу в Arduino, и всё включили, датчик должен включать или выключать управляемое устройство каждый раз, когда вы хлопаете.

Объяснение

Если вы сравните этот скетч с предыдущим, вы заметите много общего, кроме нескольких вещей.

В начале мы объявляем вывод Arduino, к которому подключен вывод управления реле (IN). Мы также определили новую переменную relayState для хранения состояния реле.

В функции setup() мы настраиваем вывод relayPin как выходной.

Теперь, когда мы обнаруживаем звук хлопка, вместо того, чтобы печатать сообщение в мониторе последовательного порта, мы просто переключаем состояние реле.

Исправление проблем

Если датчик звука работает неправильно, попробуйте выполнить следующие действия.

  1. Дважды проверьте, что источник питания обеспечивает чистое напряжение питания. Поскольку звуковой датчик – это аналоговая схема, он более чувствителен к шуму, создаваемому блоком питания.
  2. Электретный микрофон в звуковом датчике также чувствителен к механическим вибрациям и шуму ветра. Установка с помощью эластичных/упругих материалов может помочь поглотить вибрацию.
  3. Диапазон чувствительности этого звукового датчика очень мал, возможно, всего 10 дюймов (примерно 25 см), поэтому, чтобы получить хорошую реакцию, вам нужно создавать шум намного ближе.

Источник

Adblock
detector