Микрофон и Arduino

13-12-2020, 16:25 1 комментариев
Подключение микрофона к Ардуино – несложная базовая процедура, которая позволит создать полноценные, очень увлекательные аудио проекты. В них вы можете задействовать устройства, которые будут переводить звуковой сигнал в цифровой, фиксировать наличие звука, измерять его громкость (ну а далее все зависит от ваших возможностей и предпочтений).

Микрофонный модуль (конденсаторный ∕ электретный микрофон) – девайс простой. Состоит обычно из компактной платы, на которой расположены порты подключения к контроллерам Ардуино (например, Nano). Там же имеется звуковой усилитель, резистор и электронный микрофон, особо чувствительный к звуку. К слову, регулятором чувствительности можно легко и просто настраивать чувствительность микрофона, а также решать, от какого уровня шума будет срабатывать ваш датчик в дальнейшем.

Подключение модуля выглядит следующим образом:

Конечно же мы рассмотрим несколько проектов, чтобы ознакомиться с практичностью применения подобного датчика. Начнем небольшой «разминки» – определим интенсивность звука. Для этой схемы подключения (смотрите скриншот ниже) нам понадобятся такие аппаратные компоненты:
  • плата расширения Arduino UNO;
  • датчик звука с микрофоном (типа KY-038);
  • макетная плата;
  • светодиод;
  • резистор;
  • перемычки.

Загружаем скетч для проверки работоспособности сборки:

int ledPin=13;
int sensorPin=7;
boolean val =0;
 
void setup(){
  pinMode(ledPin, OUTPUT);
  pinMode(sensorPin, INPUT);
  Serial.begin (9600);
}
  
void loop (){
  val =digitalRead(sensorPin);
  Serial.println (val);
  // when the sensor detects a signal above the threshold value, LED flashes
  if (val==HIGH) {
    digitalWrite(ledPin, HIGH);
  }
  else {
     digitalWrite(ledPin, LOW);
  }
}

Никаких особых библиотек мы не использовали – все супер-просто!
При желании можно собрать и настроить простейший эквалайзер. Обратите внимание на схему:


Пример программной прошивки:

const int micPin = A0;
const int gPin = 12;
const int yPin = 11;
const int rPin = 10;
 
void setup() {
    Serial.begin(9600); 
    pinMode(gPin, OUTPUT);
    pinMode(yPin, OUTPUT);
    pinMode(rPin, OUTPUT);
}
 
void loop() {   
    int mv = analogRead(micPin) * 5.0 / 1024.0 * 1000.0; // значения в милливольтах
     Serial.println(mv); // выводим в порт
    /* Пороги срабатывания светодиодов настраиваются
        вами экспериментальным методом: */
    if (mv < 2100) { // порог срабатывания зелёного светодиода, мВ
      digitalWrite(gPin, HIGH);
      digitalWrite(yPin, LOW);
      digitalWrite(rPin, LOW);
    }
    else if (mv < 2125) { // порог срабатывания жёлтого светодиода, мВ
      digitalWrite(gPin, HIGH);
      digitalWrite(yPin, HIGH);
      digitalWrite(rPin, LOW);
    }
    else if (mv < 2150) { // порог срабатывания красного светодиода, мВ
      digitalWrite(gPin, HIGH);
      digitalWrite(yPin, HIGH);
      digitalWrite(rPin, HIGH);    
    }
}

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

Мы рассказали сегодня о том, как можно подключить датчик звука к Ардуино. Надеемся, информация была вам полезна! До скорой встречи!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

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

Сегодня у нас на рассмотрении подключение MQ-135 к Arduino и все, что с ним связано. Данная тема и в особенности модуль сенсора выбраны не случайно, ведь в...

Модуль энкодер KY-040 является электромеханическим устройством, а точнее - датчиком угла поворота и вращения оси различных девайсов. Непосредственно сам прибор...

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

На повестке дня еще один увлекательный и практичный проект – подключение датчика дыма MQ-2 к Arduino. Почему увлекательный – нет надобности пояснять, а вот о...

1 комментария
  1. Ярослав
    22 августа 2022 22:10 Ярослав

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

    replyОтветить
Оставить комментарий