Андрей Смирнов
Время чтения: ~7 мин.
Просмотров: 2

Простой аналоговый датчик звука для Ардуино своими руками

Содержание

  • Обзор
  • Технические характеристики модуля
  • Пример использования
  • Часто задаваемые вопросы FAQ

Обзор датчика звука для Arduino

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

arduino-Datchik-urovnya-zvuka.jpg

Датчик представляет собой небольшую плату с установленным на ней микрофоном, микрофонным усилителем, регулятором чувствительности в виде переменного резистора. Микрофон преобразует звуковые колебания в колебания электрического тока. Сигнал с микрофона необходимо усилить с помощью компаратора L293. Датчик имеет выход с логическим уровнем. Сработал датчик – на выходе появился логический 0.  Регулятором чувствительности можно выбирать, от какого звука будет срабатывать датчик — от слабого, громкого или очень громкого звука. Датчик имеет 3 вывода. Назначение выводов следующее:

  • Vcc – питание датчика;
  • GND – земля;
  • OUT — цифровой выход;

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

Технические характеристики модуля

  • Напряжение питания: 4-6 В;
  • Выход: цифровой;
  • Максимальное расстояние обнаружения –5 м;
  • Размер модуля: 32×17×15 мм;
  • Общий вес: 12.5 г.

Пример использования

Рассмотрим использование датчика звука для управления лампой с помощью хлопков. При регистрации хлопка, датчик звука выдает на микроконтроллер сигнал низкого уровня. По получении сигнала микроконтроллер через реле переключает состояние лампы (включает/выключает). Для проекта нам понадобятся следующие детали:

  • плата Arduino Uno;
  • датчик уровня звука;
  • блок реле;
  • настольная лампа;
  • соединительные провода.

Соберем схему, показанную на рисунке

SoundSensor_bb.jpg

Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки:

Часто задаваемые вопросы FAQ

  • При любом уровне звука не горит светодиод уровня вывода OUT
  1. Проверьте соединение датчика с входом микроконтроллера.
  2. Отрегулируйте величину выходного сигнала с помощью потенциометра.
a28321ba8f3530fc856783a3123dd44c_L.jpgМодуль с микрофоном

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 мВ. Вам для своего микрофона придётся определить их самим.

Последнее изменениеВторник, 15 Январь 2019 20:21 Прочитано 39403 разshtampnm.pngElectro_intelligenceЭлектроника / ArduinoДобавлен 1 комментарий Приветствую, друзья. Сегодня мы соберем аналоговый датчик звука, который отлично будет работать с микроконтроллерами, Ардуино и другими подобными устройствами. По своим характеристикам и компактности он совершенно не уступает своим китайским аналогам и может отлично справляться с поставленной задачей. Итак, приступим. Для начала стоит определиться с компонентами и схемой. Принцип работы схемы прост : слабый сигнал с микрофона усиливается и отправляется на аналоговый пин Ардуино. В качестве усилителя я буду использовать операционный усилитель (компаратор). Он обеспечивает гораздо больший коэффициент усиления по сравнению с обычным транзистором. В моем случае этим компаратором будет служить микросхема LM358, ее можно найти буквально где угодно. И стоит она довольно дешево.Если вам не удалось найти именно LM358, то на ее место можно поставить любой другой подходящий операционный усилитель. К примеру, представленный на фотографии компаратор, стоял на плате усилителя сигнала инфракрасного приемника в телевизоре. Теперь давайте рассмотрим схему датчика. Кроме операционного усилителя нам понадобится еще несколько легкодоступных компонентов.Самый обычный микрофон. Если полярность микрофона не обозначена, то достаточно взглянуть на его контакты. Минусовой всегда уходит на корпус, а в схеме, соответственно, соединяется с «землей».Далее нам потребуется резистор на 1 кОм.Три резистора на 10 кОм.И еще один резистор номиналом 100 кОм – 1 МОм. В моем случае в качестве «золотой середины» применен резистор на 620 кОм. Но в идеале нужно использовать переменный резистор соответствующего номинала. При чем, как показали опыты больший номинал лишь повышает чувствительность устройства, но при этом появляется больше «шумов».Следующим компонентом является конденсатор на 0.1 мкФ. Он имеет маркировку «104».И еще один конденсатор, на 4.7 мкФ.Теперь переходим к сборке. Я собирал схему навесным монтажом.Сборка завершена. Схему установил в корпусе, который изготовил из небольшого обрезка пластиковой трубки.Переходим к тестированию устройства. Я подключу его к плате Arduino UNO. Переходим в среду разработки Ардуино и открываем пример AnalogReadSerial в разделе Basics.

void setup() {   Serial.begin(9600);//подключаем Serial соединение на частоте 9600 бод } void loop() {     int sensorValue = analogRead(A0); /*считываем значение с нулевого аналогово пина и сохраняем в переменную sensorValue*/      Serial.println(sensorValue); //выводим значение в порт   delay(1); //ждем одну миллисекунду для стабилизации }      

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

if (sensorValue > X){ Serial.print ("CLAP"); delay (1000);  }

Вместо «Х» вставляете то самое значение, загружаете и снова хлопаете. Так продолжайте до тех пор, пока не подберете оптимальное значение срабатывания. При завышенном значении условие будет выполняться лишь при хлопке на очень близком расстоянии. При заниженном значении условие будет выполняться при малейшем шуме или звуке шагов.Также при правильном подборе резистора R5 этот датчик может превратиться в цифровой и сможет использоваться в аппаратных прерываниях. Потенциал данной конструкции огромен, на ее основе можно собрать кучу всевозможных проектов, а ее простота делает устройство доступным каждому. В заключении предлагаю посмотреть видео, в котором все наглядно показано. Также гораздо более подробно объяснен процесс калибровки и сборка простейшего хлопкового выключателя. Надеюсь вам оно понравилось. Желаю удачной сборки! Доставка новых самоделок на почту

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

*Заполняя форму вы соглашаетесь на обработку персональных данных

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь. Используемые источники:

  • https://3d-diy.ru/wiki/arduino-datchiki/datchik-zvuka-arduino/
  • https://soltau.ru/index.php/arduino/item/377-kak-podklyuchit-datchik-z
  • https://usamodelkina.ru/7899-prostoy-analogovyy-datchik-zvuka-dlya-arduino-svoimi-rukami.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации