Как подключить датчик звука к Ардуино

Рассмотрим на этом занятии аналоговый датчик звука для Ардуино. Расскажем, как подключить датчик звука к Arduino, разберем скетч для автоматического включения света от хлопка в ладоши и получения показаний датчика звука на мониторе порта. Рассмотрим логический тип данных boolean в языке C++.

Датчик звука (микрофон) для Arduino

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

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

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

Как подключить датчик звука к Arduino

Датчик звука для Ардуино имеет на плате подписанные выходы (обозначение у каждого производителя может отличаться), но проблем с подключением датчика к Ардуино возникнуть не должно. Питание датчика производится от 5V, выход (OUT, S или AO) подключается к любому аналоговому входу на Arduino Uno, а выход DO к Pin 0.

Для занятия нам понадобятся следующие детали:

  • Плата Arduino Uno;
  • Макетная плата;
  • USB-кабель;
  • 1 датчик звука;
  • 1 светодиод;
  • 1 резистор 220 Ом;
  • Провода «папка-папка» и «папка-мамка».

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

Чтобы сделать своими руками светильник, который будет включаться по хлопку в ладоши необходимо собрать электрическую схему из следующих элементов: светодиод с резистором, плата Arduino и датчик звука для включения света своими руками. Светодиод можно подключить к любому выходу, в скетче мы использовали Pin 11.

 

Фото. Как подключить датчик звука к Arduino UNO
Фото. Как подключить датчик звука к Arduino UNO

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

Скачать готовый скетч zanyatie8_sound.ino

boolean statuslamp; // состояние лампы: true - включено, false - выключено

void setup() // процедура setup
{
pinMode(12,OUTPUT); // пин 12 со светодиодом будет выходом (англ. «output»)
pinMode(A0,INPUT); // к аналоговому входу A0 подключим датчик (англ. «intput»)
statuslamp=false; // начальное состояние - лампа выключена
Serial.begin(9600); // подключаем монитор порта
}

void loop() // процедура loop
{
Serial.println (analogRead(A0)); // выводим значение датчика на монитор
  
if(analogRead(A0)>60) // регистрация хлопка на датчике звука
{
statuslamp=!statuslamp; // меняем статус лампы при регистрации хлопка
digitalWrite(12,statuslamp); // переключаем светодиод на выходе 12
delay(20); // задержка, "дребезга" хлопков
}
}

Пояснения к коду:

  1. Спецификатор boolean используется для объявления логических значений (истина/ложь) в языке программирования C++;
  2. Ключевое слово true в языке программирования C++ представляет собой логическую константу, имеющую значение «истина»;
  3. Ключевое слово false представляет собой логическую константу в языке программирования C++, имеющую значение «ложь»;
  4. В строчке statuslamp=!statuslamp; мы меняем статус лампы при хлопке.

На что обратить внимание:

  1. В строчке if(analogRead(A0)>60) вместо значения 60 можно подставить любое значение. Узнайте показания датчика звука при хлопке в ладоши на мониторе порта и поставьте свои значения в скетч, при необходимости.

Задание для самостоятельного выполнения:

  1. Установите в скетче начальное значение statuslamp=true; (лампа включена).

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5,00 out of 5)
Загрузка...

2 комментариев для “Как подключить датчик звука к Ардуино

  1. А можно сделать чтобы светодиод при хлопке выключался сам через некоторое время?

    1. Конечно можно. Для этого следует добавить паузу в условии при срабатывании датчика (поставил 2 секунды для примера).

      void loop() // процедура loop
      {
      Serial.println (analogRead(A0)); // выводим значение датчика на монитор
      if(analogRead(A0)>60) // регистрация хлопка на датчике звука

      delay(2000); / задержка в 2 секунды

      {
      statuslamp=!statuslamp; // меняем статус лампы при регистрации хлопка
      digitalWrite(12,statuslamp); // переключаем светодиод на выходе 12
      delay(20); // задержка, «дребезга» хлопков
      }
      }

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *