Микрофон и Arduino

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

Микрофонный модуль (конденсаторный ∕ электретный микрофон) – девайс простой. Состоит обычно из компактной платы, на которой расположены порты подключения к контроллерам Ардуино (например, 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. Почему увлекательный – нет надобности пояснять, а вот о...

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