
Всем привет!
Учитывая популярность предыдущей статьи про цветомузыку я решил сделать вторую версию.
Основной упор был сделан на то, чтобы упростить схему, так как прошлая версия требовала сборки усилительного каскада на транзисторе, а также его настройки и это для многих явилось препятствием.
Для второй версии цветомузыки я решил использовать доступный к покупке модуль микрофона со встроенным усилителем на микросхеме MAX9814. Он обладает большим усилением 60 дБ и автоматической регулировкой усиления(АРУ). В коде так же были внесены программные улучшения.
В новой версии цветомузыки, добавил несколько световых эффектов и два светильника с регулировкой яркости все тем же потенциометром.
Режим выбирается как и раньше кнопкой Pattern, то есть в схеме не будет изменений.
И даже у того кто собрал первую версию цветомузыки, все дополнения тоже будет работать после перепрошивки, без каких либо изменений в схеме.
Код написан под схему с делителем из двух резисторов на ARef
и для правильной работы аналогового входа в старой схеме, нужно в процедуре void setADCFreeRunning()
закомментировать или удалить строку // analogReference(EXTERNAL);
и раскомментировать строку ADMUX |= _BV(REFS0);
Все режимы перебираются как и раньше кнопкой «Pattern»
Белое свечение — это все режимы которые относятся к цветомузыке.
Красное свечение — это режим цветомузыки с рандомным переключением режимов.
Синие свечение — это режимы бегущих огней, последние два из них светильники.
Яркость некоторых режимов регулируется потенциометром.
Помните, что чувствительность в отличие от регулировки яркости увеличивается против часовой стрелки. Если потенциометр на минимуме, то для для регулировки чувствительности аудио входа это максимум, а для регулировки яркости это минимум.
Схема цветомузыки

Требуемые компоненты
Arduino Nano
Светодиодная лента на WS2812B
Микрофон MAX9814
Потенциометр 20кОм
Код для Ардуино
В архиве вложены дополнительные библиотеки. Устанавливать их не требуется, важно, что бы они лежали в папке со скетчем
Скачать Ардуино скетч для цветомузыки

Данный проект будет использоваться в качестве индикатора акустического шума.
Данный модуль я купил у китайцев достаточно давно, после чего успешно забыл о нем, но сегодня он мне попался на глаза и я решил с ним разобраться.
Назначение выводом микрофонного модуля
Данный модуль имеет 4 вывода для подключения к внешним устройствам:
- AD – выход аналогового сигнала
- G – GND
- + — +5V
- D0 – выход дискретного сигнала
Принцип работы микрофонного модуля
На аналоговом выходе АО, в режиме реального времени, появляется напряжение, уровень которого зависит от уровня сигнала, принимаемого микрофоном.Когда уровень сигнала превышает порог, который устанавливается с помощью подстроечного резистора на плате модуля, то на дискретном выходе D0 появляется сигнала высокого уровня.
Подключение микрофонного модуля у контроллеру Arduino
- AD на микрофонном модуле подключаем к аналоговому пину A0 Arduino
- G на микрофонном модуле подключаем к GND Arduino
- + на микрофонном модуле подключаем к +5V Arduino
- D0 на микрофонном модуле подключаем к дискретному пину D9 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= «);
Serial.println(sensorValue);
delay(1000);
}
Подключение микрофона к Ардуино – несложная базовая процедура, которая позволит создать полноценные, очень увлекательные аудио проекты. В них вы можете задействовать устройства, которые будут переводить звуковой сигнал в цифровой, фиксировать наличие звука, измерять его громкость (ну а далее все зависит от ваших возможностей и предпочтений).
Микрофонный модуль (конденсаторный ∕ электретный микрофон) – девайс простой. Состоит обычно из компактной платы, на которой расположены порты подключения к контроллерам Ардуино (например, 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);
}
} А еще можно создать своими руками светильник, который будет включаться по хлопку в ладоши и много чего другого. Пробуйте, экспериментируйте!
Мы рассказали сегодня о том, как можно подключить датчик звука к Ардуино. Надеемся, информация была вам полезна! До скорой встречи!
Подключим модуль с звуковым датчиком – микрофоном CMA-4544PF-W – к Arduino.
Инструкция по подключению датчика звука к Arduino
- Arduino UNO или иная совместимая плата;
- модуль с электретным капсюльным микрофоном CMA-4544PF-W или аналогичны;
- 3 светодиода (зелёный, жёлтый и красный, вот из такого набора, например);
- 3 резистора по 220 Ом (вот отличный набор резисторов самых распространённых номиналов);
- соединительные провода (рекомендую вот такой набор);
- макетная плата (breadboard);
- персональный компьютер со средой разработки Arduino IDE.
1 Электретный капсюльный микрофон CMA-4544PF-W
Электретный микрофон CMA-4544PF-W, который является основой модуля, реагирует на звуковые волны с частотами от 20 Гц до 20 кГц. Микрофон является всенаправленным, т.е. чувствителен к звуку, приходящему со всех направлений, с чувствительностью -44 дБ. Более подробно об устройстве и принципе действия электретных микрофонов можно почитать в статье «Устройство и принцип работы электретных микрофонов».

Мы воспользуемся готовым модулем, в котором присутствует микрофон, а также минимально необходимая обвязка. Приобрести такой модуль можно здесь.
2 Схема подключения микрофона к Arduino
Модуль содержит в себе электретный микрофон, которому необходимо питание от 3 до 10 вольт. Полярность при подключении важна. Подключим модуль по простой схеме:
- вывод «V» модуля – к питанию +5 вольт,
- вывод «G» – к GND,
- вывод «S» – к аналоговому порту «A0» Arduino.

3 Скетч для считывания показаний электретного микрофона
Напишем программу для Arduino, которая будет считывать показания с микрофона и выводить их в последовательный порт в милливольтах.
Для чего может понадобиться подключать микрофон к Arduino? Например, для измерения уровня шума; для управления роботом: поехать по хлопку или остановиться. Некоторые даже умудряются «обучить» Arduino определять разные звуки и таким образом создают более интеллектуальное управление: робот будет понимать команды «Стоп» и «Иди» (как, например, в статье «Распознавание голоса с помощью Arduino»).
4 «Эквалайзер»на Arduino
Давайте соберём своеобразный простейший эквалайзер по приложенной схеме.

5 Скетч «эквалайзера»
Немного модифицируем скетч. Добавим светодиоды и пороги их срабатывания.
Эквалайзер готов! Попробуйте поговорить в микрофон, и увидите, как загораются светодиоды, когда вы меняете громкость речи.
Полезный совет
Значения порогов, после которых загораются соответствующие светодиоды, зависят от чувствительности микрофона. На некоторых модулях чувствительность задаётся подстроечным резистором, на моём модуле его нет. Пороги получились 2100, 2125 и 2150 мВ. Вам для своего микрофона придётся определить их самим.
Подключим модуль с звуковым датчиком – микрофоном CMA-4544PF-W – к Arduino.
Инструкция по подключению датчика звука к Arduino
- Arduino UNO или иная совместимая плата;
- модуль с электретным капсюльным микрофоном CMA-4544PF-W или аналогичны;
- 3 светодиода (зелёный, жёлтый и красный, вот из такого набора, например);
- 3 резистора по 220 Ом (вот отличный набор резисторов самых распространённых номиналов);
- соединительные провода (рекомендую вот такой набор);
- макетная плата (breadboard);
- персональный компьютер со средой разработки Arduino IDE.
1 Электретный капсюльный микрофон CMA-4544PF-W
Электретный микрофон CMA-4544PF-W, который является основой модуля, реагирует на звуковые волны с частотами от 20 Гц до 20 кГц. Микрофон является всенаправленным, т.е. чувствителен к звуку, приходящему со всех направлений, с чувствительностью -44 дБ. Более подробно об устройстве и принципе действия электретных микрофонов можно почитать в статье «Устройство и принцип работы электретных микрофонов».

Мы воспользуемся готовым модулем, в котором присутствует микрофон, а также минимально необходимая обвязка. Приобрести такой модуль можно здесь.
2 Схема подключения микрофона к Arduino
Модуль содержит в себе электретный микрофон, которому необходимо питание от 3 до 10 вольт. Полярность при подключении важна. Подключим модуль по простой схеме:
- вывод «V» модуля – к питанию +5 вольт,
- вывод «G» – к GND,
- вывод «S» – к аналоговому порту «A0» Arduino.

3 Скетч для считывания показаний электретного микрофона
Напишем программу для Arduino, которая будет считывать показания с микрофона и выводить их в последовательный порт в милливольтах.
Для чего может понадобиться подключать микрофон к Arduino? Например, для измерения уровня шума; для управления роботом: поехать по хлопку или остановиться. Некоторые даже умудряются «обучить» Arduino определять разные звуки и таким образом создают более интеллектуальное управление: робот будет понимать команды «Стоп» и «Иди» (как, например, в статье «Распознавание голоса с помощью Arduino»).
4 «Эквалайзер»на Arduino
Давайте соберём своеобразный простейший эквалайзер по приложенной схеме.

5 Скетч «эквалайзера»
Немного модифицируем скетч. Добавим светодиоды и пороги их срабатывания.
Эквалайзер готов! Попробуйте поговорить в микрофон, и увидите, как загораются светодиоды, когда вы меняете громкость речи.
Полезный совет
Значения порогов, после которых загораются соответствующие светодиоды, зависят от чувствительности микрофона. На некоторых модулях чувствительность задаётся подстроечным резистором, на моём модуле его нет. Пороги получились 2100, 2125 и 2150 мВ. Вам для своего микрофона придётся определить их самим.

Данный проект будет использоваться в качестве индикатора акустического шума.
Данный модуль я купил у китайцев достаточно давно, после чего успешно забыл о нем, но сегодня он мне попался на глаза и я решил с ним разобраться.
Назначение выводом микрофонного модуля
Данный модуль имеет 4 вывода для подключения к внешним устройствам:
- AD – выход аналогового сигнала
- G – GND
- + – +5V
- D0 – выход дискретного сигнала
Принцип работы микрофонного модуля
На аналоговом выходе АО, в режиме реального времени, появляется напряжение, уровень которого зависит от уровня сигнала, принимаемого микрофоном.Когда уровень сигнала превышает порог, который устанавливается с помощью подстроечного резистора на плате модуля, то на дискретном выходе D0 появляется сигнала высокого уровня.
Подключение микрофонного модуля у контроллеру Arduino
- AD на микрофонном модуле подключаем к аналоговому пину A0 Arduino
- G на микрофонном модуле подключаем к GND Arduino
- + на микрофонном модуле подключаем к +5V Arduino
- D0 на микрофонном модуле подключаем к дискретному пину D9 Arduino (я его не буду использовать)
Внешне это будет выглядеть так:
Проверочный скетч для работы с микрофонным модулем
В данном скетче реализована передача данных о аналоговом уровне сигнала в Монитор порта.
const int analogInPin = A0;
int sensorValue = 0;
Эта самоделка думаю понравится многим, так как каждый из нас иногда хочет побыть в роли шпиона и узнать информацию которую люди от нас могут скрывать, делать сегодня буду шпионский мини диктофон на Ардуино. Конечно все мы знаем, что использовать такие вещи у нас запрещено и карается законом но данное устройство можно использовать не обязательно для прослушивания чужих разговоров но и для более серьёзных и нужных вещей. А именно для охраны своей квартиры или дачи, чтобы потом убедиться, что там никого не бывает в наше отсутствие, если у Вас вдруг возникли подобные подозрения. Именно данная штука в этом может помочь, так как этот диктофон с активацией по голосу или же любому громкому звуку.
Мини диктофон на Ардуино с активацией по голосу
Другие преимущества данного диктофона на Ардуино это: малое потребление энергии в режиме ожидания и чуть больше во время записи; автоматическая остановка сессии записи через небольшой промежуток если больше нет никакой звуковой активности и при новом появлении разговора снова начинает записывать в новый аудиофайл; расширяемость функционала, так как это открытый проект созданный в среде Arduino и Вы можете добавить или изменить любой функционал диктофона; автономность, так как устройство потребляет мало энергии при работе или в режиме ожидания то можно для питания использовать Li-Ion аккумуляторы и даже если отключится электроэнергия в доме то диктофон продолжит свою работу; используются широко доступные и недорогие модули и стоимость всех деталей в сумме будет небольшой.
Детали которые нам понадобятся:
- Arduino Pro Mini – купить можно здесь – http://ali.pub/4b78g4;
- Микрофонный модуль MAX4466 (можно заменить на MAX9814) – http://ali.pub/4b78j8;
- Micro SD Шилд – http://ali.pub/4b78t5;
- Микросхема опорного напряжения TL431 – http://ali.pub/4b78vo;
- Зелёный и красный светодиоды;
- Резистор 1,5 кОм (установка напряжения на TL431);
- Резистор 1 кОм (ограничение тока светодиодов);
- Диод FR107;
- Микропереключатель;
- Li-Ion аккумулятор на 3,7В;
- Стабилизатор напряжения AMS1117 на 3,3В;
- Электролитический конденсатор 100 мкФ х 10В.
Микрофонный модуль MAX4466
Микрофонный модуль MAX9814
Как сделать диктофон на Ардуино, пошаговая инструкция:
Для начала я собрал диктофон на отладочной плате, подключаем питание, если всё работает правильно то при подаче любого звукового сигнала, микрофон улавливает и включается режим записи, при этом загорается красный светодиод.
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
Немного расскажу о работе светодиодов: зелёный светодиод сигнализирует, что устройство готово к работе, красный же светится тогда, когда идёт запись звука, а если же горят оба светодиода то это говорит о том, что что-то не так с флешкартой, то ли она отсутствует или не работает или же где-то нет соединения. Я вместо двух разных светодиодов использовал один двухцветный с тремя ножками.
С микросхемы TL431 идёт напряжение на контакт AREF в Ардуино, но не во всех Arduino Pro Mini он подписан и выведен в порт и чтобы его можно было найти я привожу фото куда нужно в этом случае подпаять провод:
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
Для того чтобы микрофонный модуль работал корректно то нужно отрыть скетч Recording2.ino, (скачать его можно отсюда, там также есть схема) затем скачать и установить библиотеку TMRpcm отсюда — https://github.com/TMRh20/TMRpcm (она также уже есть в архиве со скетчем). Далее нужно открыть из этого архива с библиотекой файл настройки pcmConfig.h и раскомментировать там такие строки (убрав перед решёткой два слеша):
29 #define buffSize 128
75 #define ENABLE_RECORDING
77 #define BLOCK_COUNT 10000UL // 10000 = 500MB 2000 = 100MB
И затем сохраняем наши изменения в файле.
Мини диктофон на Ардуино с активацией по голосу
Обращаю внимание что скетч Recording2.ino нужно внимательно прочитать, все самые главные настройки которые можно изменять подробно прокомментированы и не составит проблем с ними разобраться. Я объясню здесь только самое главное, что может Вам понадобится изменить:
29 #define ENABLE_DEBUG; эта строка нужна при отладке устройства, вся информация при этом выводится через Serial и когда устройство будет правильно работать то эту строку необходимо закомментировать.
41 int RecInterval = 5; в этой строке указывается количество секунд при которых будет сравниваться есть ли звук на входе микрофона или нет, если нет то запись прекращается, можно выставить большее время, чтобы количество файлов было меньше.
Для уменьшения размера диктофона в качестве гнезда для SD карты я использовал компактное гнездо выпаянное из мобильного телефона. Для согласования уровней напряжений на каждую линию данных на той же платке с SD гнездом я впаял SMD резисторы на 1 кОм. Это нужно для того, что карта памяти питается ровно от 3,3В, а плата Ардуино будет запитана от аккумулятора у которого напряжение немного больше и уровни данных при этом могут быть выше.
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
На плате Arduino навесным монтажом также установил стабилизатор напряжения AMS1117 на 3,3В. Вместо электролитического конденсатора по питанию использовал компактный танталовый SMD конденсатор.
Мини диктофон на Ардуино с активацией по голосу
Коричневый провод идёт на вторую сторону Аруино и подключён к выводу AREF. Красный и чёрный провод (плюс и минус) от микросхемы AMS1117 идёт к модулю SD карты для её питания.
Мини диктофон на Ардуино с активацией по голосу
На стороне кварца на плате Arduino Pro Mini распаял микрофонный модуль и его обвязку из диода и электролитических конденсаторов (здесь можно также применить танталовые конденсаторы для компактности), а также соединяющих проводников.
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
В режиме ожидания диктофон потребляет очень мало – около 23 мА, но надо учитывать, что на плате Ардуино стоит светодиод, который постоянно работает и потребляет до 19 мА, если его выпаять то потребление снизится раза в 3. Во время записи потребление диктофона увеличивается до 55 мА и это опять же с учётом того же светодиода. Если например взять компактный аккумулятор от какого-нибудь плеера на 200 мА*ч то его хватит примерно на 5 часов непрерывной записи либо на 20 часов в режиме ожидания (с выпаянным светодиодом).
Мини диктофон на Ардуино с активацией по голосу
Мини диктофон на Ардуино с активацией по голосу
В итоге самодельный диктофон на Ардуино сделанный своими руками получился очень удачным, а его функционал можно при этом расширять в больших пределах.
Микрофонный датчик звука, как следует из названия, фиксирует наличие звука и измеряет его громкость.
Существует большое разнообразие таких датчиков. На рисунке справа представлены лишь несколько простых аналоговых модулей, наиболее часто используемых с платформой Arduino.
Слева на фотографии — модуль микрофона KY-038, справа — модуль микрофона с компаратором LM393.
В модули обоих датчиков встроен потенциометр для регулировки чувствительности цифрового вывода.

Подключение микрофонного модуля
Подключение датчика к плате Arduino довольно простое:
| Разъём | Подключение к Arduino |
| A0 | Аналоговые разъёмы |
| D0 | Цифровые разъёмы |
| GND | GND |
| VCC | 5 V |
| Arduino_3.3 | NRF24_Vcc |
| Arduino_GND | NRF24_GND |
Если вы используете модуль LM393, то необходимо подключить его вывод OUT (ВЫХОД) к цифровому выводу платы Arduino.
Компоненты, необходимые для проекта
Принципиальная схема подключения компонентов
Соедините элементы, как показано на нижеследующей схеме, созданной с помощью программы Fritzing (полный обзор программы по ссылке).

Код для подключения микрофона к Arduino
Далее нужно загрузить следующий код в плату Arduino.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /* * Rui Santos * Complete Project Details https://randomnerdtutorials.com */ 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); } } |
Демонстрация работы готового устройства
После загрузки кода вы можете пощёлкать пальцами рядом с датчиком. Если светодиод не загорается, необходимо изменить чувствительность датчика повернув переключатель потенциометра.
Вы можете настроить чувствительность так, чтобы светодиод следовал ритму определённой музыкальной композиции.
И добавить ещё светодиодов для большего эффекта!

Самые популярные материалы в блоге
Вольтик — это слаженная команда амбициозных и заядлых инженеров. Мы создали этот проект с целью вовлечения вас, талантливых и начинающих профессионалов, в увлекательный мир мейкерской микроэлектроники!



















