Как подключить микрофон к ардуино

от admin

Микрофон и Arduino

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

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

  • плата расширения Arduino UNO;
  • датчик звука с микрофоном (типа KY-038);
  • макетная плата;
  • светодиод;
  • резистор;
  • перемычки.

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


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

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

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

Arduino и микрофон

Arduino весьма неплохо измеряет напряжение, почему бы не подключить к ней микрофон? Просто голый микрофонный капсюль подключать нет смысла, для работы с ним понадобятся ещё некоторые электронные компоненты. У китайцев есть несколько вариантов микрофонных модулей, но самый хороший из них – на базе микросхемы MAX9814 (вынесен на картинке справа), такой и идёт в наборе GyverKIT:

Данный модуль обеспечивает:

  • Усиление сигнала с микрофона до амплитуды 1.25V (выходной диапазон 0.. 2.5V)
  • Встроенный АРУ – автоматическая регулировка усиления, выравнивает громкость тихих и громких звуков
  • Подавление шума – сигнал с микрофона довольно чистый даже при не очень хорошем питании. Его очень приятно обрабатывать, да и рацию можно сделать

Пины и настройки модуля:

  • GND и Vdd (V+): питание, 3.. 5V
  • Out: выход сигнала для подключения к МК
  • Gain (G): настройка усиления
    • Никуда не подключен: 60dB
    • На GND: 50dB
    • На VCC: 40dB
    • Никуда не подключен: 1:4000 мс
    • На VCC: 1:2000 мс
    • На GND: 1:500 мс

    Подключение

    К питанию и на аналоговый пин:
    Примечание:

    • На схеме с Arduino (слева) можно переключить опорное напряжение (пин REF) на встроенный источник 3.3V, желательно через резистор на 10к. Соответственно в программе вызвать analogReference(EXTERNAL) . Это нужно для того, чтобы расширить диапазон чтения сигнала микрофона и обрабатывать его более точно (он выдаёт 0.. 2.5V)
    • На схеме с Wemos (справа) мы подключаем микрофон на питание 3.3V. Сигнал он всё равно выдаёт 0.. 2.5V, что очень хорошо: у Wemos как раз 3.3V – верхняя граница напряжения на аналоговый пин A0

    Библиотеки

    Модуль выдаёт аналоговый сигнал, то есть его достаточно опрашивать стандартными средствами Arduino для получения сырого сигнала. Но полезные библиотеки всё таки есть:

    • Если микрофон используется для измерения громкости звука, то можно воспользоваться библиотекой амплитудного анализа VolAnalyzer, которая обработает звук и преобразует громкость в нужный диапазон, а также будет автоматически подстраивать чувствительность при изменении среднего уровня громкости – библиотека для распознавания хлопков в ладоши, удобно использовать совместно с VolAnalyzer
    • Для частотного анализа звука можно использовать библиотеку FHT (только для AVR)

    Примеры

    Откроем монитор порта и скажем что-нибудь в микрофон

    Отлично! Но это сырой сигнал, с ним работать неудобно – он не отражает усреднённую громкость, а всего лишь показывает форму звукового сигнала

    Заведём похожий пример, но с библиотекой VolAnalyzer: выведем приведённую “громкость” звука и построим график:

    И получим гораздо более применимые для проектов значения:

    Такой сигнал достаточно подать на светодиод – и уже получится светомузыка!

    Подключение микрофонного модуля к 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
    • Просмотров: 35 669
      Дата Бот

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

    Комментариев: 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];

    What you’ll learn :

    Jalal Mansoori

    B efore we get started into the following tutorial, let me share with you the moment when this project worked. I was working on this project for a week or so. Finally, that exciting moment came when I gave a voice command “Light ON” and the built-in red led on Arduino Uno board �� turned ON ��

    In the beginning, I wasn’t believing that it worked but then I gave another voice command “Light OFF” and this time the built-in red led on Arduino Uno board �� turned OFF. EUREKA ��

    I thought this project needs to be shared with students, makers, hobbyists, and programmers like you. So that you can also experience that feeling and make cool stuff out of this!

    Now let’s get started into the ocean of creativity using Arduino

    What is Arduino?

    Arduino is an open-source electronics platform. It was aimed at students without background knowledge in electronics or programming for making useful and interesting projects. Simply based on your project requirement there are a bunch of sensors that connect with the Arduino board and you give a set of instructions to it using Arduino Programming language.

    There are many other platforms available for this kind of work but I think because of Arduino’s simple and easy to use interface, open-source, it is growing through the contribution of students, hobbyists, makers, … worldwide.

    Читать:
    Когда запустят велосипеды в москве

Похожие публикации