Микроконтроллеры Arduino, 

Шилды, Модули, Комлектующие,

Электронные компоненты

Наши контакты: г. Москва,
ул. Молодогвардейская, д.57с10
Въезд авто только по пропуску!

Подключение микрофонного модуля KY-038/KY-037.

Опубликовано: 27.03.2019

Модули KY-038 и KY-037 представляют собой датчики звука. Отличие версии 037 от 038 лишь в размере микрофона. Эти модули находят свое применение в различных системах управления. Например, такие модули часто устанавливают в подъездах для включения освещения при звуке шагов, что позволяет значительно сэкономить электроэнергию. Также с помощью этих модулей можно управлять роботом посредством хлопков или других звуков.

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

Характеристики:

  • Питание: 3,3-5 В постоянного тока
  • Потребляемый ток: 10 мА
  • Выходной сигнал: цифровой и аналоговый

Модуль имеет 4 вывода:

”+” – питание

“G” – “земля”

“A0” – аналоговый выход, передающий выходное напряжения на микрофоне

“D0” – цифровой выход, посылающий логическую единицу при достижении порогового уровня громкости

 

Подключение к Arduino:

Для подключения датчика нам необходимы:

  • Любая Arduino-совместимая плата
  • Компьютер с установленной средой Arduino IDE.
  • USB кабель для подключения Arduino к персональному компьютеру

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

1) Для начала просто подключим датчик к плате, для анализа выходных сигналов.

Принципиальная схема подключения компонентов:

Скетч:

const int digital = 2; // Цифровой вход пин 2
const int analog = A0; // Аналоговый вход пин A0
 
 
void setup()
{
  pinMode(digital, INPUT);
  Serial.begin(9600);
}
 
void loop()
{
  Serial.print("Digital: ");
  Serial.print(digitalRead(digital)); // Цифровой сигнал с датчика
  Serial.print(", Analog: ");
  Serial.println(analogRead(analog)); // Аналоговый сигнал с датчика
  delay(50);
}

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

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

 

2) Теперь добавим в нашу схему светодиод и попробуем управлять им с помощью хлопков.

Для подключения светодиода необходим резистор номиналом около 220 Ом.

 

Принципиальная схема подключения компонентов:



Скетч:

const int digital = 2; // Цифровой вход пин 2
const int analog = A0; // Аналоговый вход пин A0
const int led = 9;     // Светодиод 
 
void setup()
{
    pinMode(led, OUTPUT);
    Serial.begin(9600);
}
 
void loop()
{
    Serial.print("Digital: ");
    Serial.print(digitalRead(digital)); // Цифровой сигнал с датчика
    Serial.print(", Analog: ");
    Serial.println(analogRead(analog)); // Аналоговый сигнал с датчика
    delay(50);
 
    if (analogRead(analog) < 625 || analogRead(analog) > 637){  //Диапазон значений устанавливайте самостоятельно из расчёта +-4 от показаний в тишине
        digitalWrite(led, HIGH);
        delay(1000);
        digitalWrite(led, LOW);
    }
}


Комментарии (3)
  • Роман
    У меня постоянно бегут показания в районе (58-60) на аналоговом сигнале и на цифровом единица.
    При хлопке каких то серьезных изменений нет. Если дунуть в него, то показания меняются сильно. Если кинуть ручку на стол рядом с датчиком, он не реагирует.
    Это нормально? Они так и работают?
    15.05.2023 18:51
  • Михаил
    Можно поиграться с этой строчкой
    if (analogRead(analog) &lt; 625 || analogRead(analog) &gt; 637), подгоняя под нужное значение, например:
    if (analogRead(analog) &gt; 450)
    Можно просто D9 слушать, когда там "1", например:
    if (digitalRead(digital)) digitalWrite(led, HIGH);
    Можно вообще без контроллера обойтись и зажигать светодиод прямо с ноги датчика D0.
    P.S. Почему-то значки больше/меньше не отображаются((
    20.02.2021 11:57
  • bep7
    Что не так? Вращением потенциометра на модуле-датчике в мониторе порта вижу изменение аналогового сигнала от 27 до 1023. При этом светодиод постоянно мигает, независимо от сигнала на D9. Сигнал на D9: 0 до 440 и 1 после 440 до 1023.
    20.02.2021 11:34
Вы не представились
Не правильно введен e-mail
Нам интересно Ваше мнение
Все поля обязательны к заполнению
Перед публикацией комментарии проходят модерацию

Главное меню

Каталог

Полезные ссылки

Цена
от
до
0 Корзина: 0 руб.