Подключение микрофонного модуля к Arduino

Содержание

подключение микрофонного модуля к ArduinoВ этой статье я опишу процесс подключение микрофонного модуля к контроллеру Arduino.

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

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

Назначение выводом микрофонного модуля

подключение микрофонного модуля к Arduino

Данный модуль имеет 4 вывода для подключения к внешним устройствам:

  • AD – выход аналогового сигнала
  • G – GND
  • + — +5V
  • D0 – выход дискретного сигнала

Принцип работы микрофонного модуля

На аналоговом выходе АО, в режиме реального времени, появляется напряжение, уровень которого зависит от уровня сигнала, принимаемого микрофоном.Когда уровень сигнала превышает порог, который устанавливается с помощью подстроечного резистора на плате модуля, то на дискретном выходе D0 появляется сигнала высокого уровня.

Подключение микрофонного модуля у контроллеру Arduino

  • AD на микрофонном модуле подключаем к аналоговому пину A0 Arduino
  • G на микрофонном модуле подключаем к GND Arduino
  • + на микрофонном модуле подключаем к +5V Arduino
  • D0 на микрофонном модуле подключаем к дискретному пину D9 Arduino (я его не буду использовать)

Внешне это будет выглядеть так:

подключение микрофонного модуля к Arduino

Проверочный скетч для работы с микрофонным модулем

В данном скетче реализована передача данных о аналоговом уровне сигнала в Монитор порта.

const int analogInPin = A0;
int sensorValue = 0;

void setup() <
Serial.begin(9600);
Serial.println("Microphone Test" );
>

void loop() <
sensorValue = analogRead(analogInPin);
Serial.print("Microphone value col s12">

  • Автор: source
  • Миниатюра: Подключение микрофонного модуля к Arduino
  • Рубрика: Arduino от А до ЯArduino, микрофон —>
  • Опубликовано: 25.06.2019
  • Обновлено: 25.06.2019
  • Комментариев: 9
  • Просмотров: 32 179
    Дата Бот

Похожие записи

Комментариев: 9

Что-то у меня монитор порта никак на звук не реагирует. Только на вращение потенциометра. Не знаете в чем может быть дело?

проверьте подключение — действительно ли к A0 подключен аналоговый выход модуля. возможно, что его положение отличается от описанного варианта.
установите резистор в среднее положение
можете еще убрать из кода строку delay(1000); чтобы чаще обновлялись данные
если не поможет, то видимо модуль неисправен.

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

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

const int analogPin = A0;
void setup() <
Serial.begin(9600);
>

void loop() <
int mn = 1024;
int mx = 0;
for (int i=0; i 1000; ++i) <
int val = analogRead(analogPin);
mn = min(mn, val);
mx = max(mx, val);
>
Serial.print(m=);
Serial.print(mn);
Serial.print( M=);
Serial.print(mx);
Serial.print( D=);
Serial.print(mx-mn);
Serial.println();
>

Все дело в serial. скорость маленькая.

у меня ардуино уно все подключил правильно, но при подключении микрофона она нагревается и отключается. Кто с этим сталкивался и как с этим бороться?

Красавчик 😉 Тото и дело у звука частота больше. Убираем к черту задержку и скорость 115200 и радуемся волнам)) Автор, поправь скетч
void setup() <
Serial.begin(115200);
>

void loop()
<
sensorVar=analogRead(A0);
Serial.println(sensorVar);
>

У меня вообще показывает 0 и всё, я блин ору на всю комнату, а он 0 показывает, подключил всё правильно.

Осталось увеличить скорость до 250000, вставить в раздел setup() фрагмент из книги С. Монка "Программируем Arduino Профессиональная работа со скетчами" фрагмент, ускоряющий аналоговый ввод до 62 кГц (стр. 60) (можно вводить сигнал с двух (а если надо и с трёх микрофонов) и разделить ввод звукового сигнала (в отдельном цикле и сохранение в массиве) и вывод его на Монитор порта (второй цикл).

const byte PS_128 = (1 ADPS2) | (1 ADPS1) | (1 ADPS0);
const byte PS_16 = (1 ADPS2);
const int size1 = 600;
int signal1[size1];


Источник: geekelectronics.org