- Требуемый материал
- Работа звукового датчика
- Принципиальная схема звукового датчика
- Схема музыкального фонтана
- Программирование Arduino Nano для Танцующего фонтана
Есть несколько фонтанов, которые безоговорочно окропляют воду интересными световыми эффектами. Поэтому я задумался о разработке инновационного фонтана, который может реагировать на внешнюю музыку и разбрызгивать воду в зависимости от ритма музыки. Разве это не интересно?
Основная идея этого фонтана Arduino Water Fountain состоит в том, чтобы принимать входной сигнал от любого внешнего источника звука, такого как мобильный телефон, iPod, ПК и т. Д., Сэмплировать звук и разбивать его на разные диапазоны напряжения, а затем использовать выход для включения различных реле. Сначала мы использовали модуль звукового датчика на основе конденсаторного микрофона, чтобы воздействовать на источник звука, чтобы разделить звуки на разные диапазоны напряжения. Затем напряжение будет подаваться на операционный усилитель для сравнения уровня звука с определенным пределом. Более высокий диапазон напряжения соответствует включению реле, которое включает музыкальный фонтан, работающий в ритмах и ритмах песни. Итак, мы строим этот Музыкальный фонтан, используя Arduino и звуковой датчик.
Требуемый материал
- Ардуино Нано
- Модуль звукового датчика
- Модуль реле 12 В
- Насос постоянного тока
- Светодиоды
- Соединительные провода
- Плата Vero или макетная плата
Работа звукового датчика
Модуль звукового датчика представляет собой простую электронную плату на основе электретного микрофона, используемую для восприятия внешнего звука из окружающей среды. Он основан на усилителе мощности LM393 и электретном микрофоне, его можно использовать для определения, есть ли какой-либо звук за установленным пороговым пределом. Выходной сигнал модуля представляет собой цифровой сигнал, который указывает, что звук больше или меньше порогового значения.
Потенциометр можно использовать для регулировки чувствительности модуля датчика. Выходной сигнал модуля ВЫСОКИЙ / НИЗКИЙ, когда источник звука ниже / выше порога, установленного потенциометром. Тот же модуль звукового датчика также может использоваться для измерения уровня звука в децибелах.
Принципиальная схема звукового датчика
Как мы знаем, в модуле звукового датчика основным устройством ввода является микрофон, который преобразует звуковые сигналы в электрические. Но поскольку выходной электрический сигнал звукового датчика настолько мал по величине, что его очень трудно проанализировать, мы использовали схему транзисторного усилителя NPN, которая будет усиливать его и подавать выходной сигнал на неинвертирующий вход Op- усилитель Здесь LM393 OPAMP используется в качестве компаратора, который сравнивает электрический сигнал от микрофона и опорный сигнал, поступающий от схемы делителя напряжения. Если входной сигнал больше, чем опорный сигнал, то выходной сигнал OPAMP будет высоким, и наоборот.
Вы можете следить за разделами о схемах операционных усилителей, чтобы узнать больше о его работе.
Схема музыкального фонтана
Как показано на приведенной выше схеме музыкального фонтана, звуковой датчик питается от источника питания 3,3 В от Arduino Nano, а выходной контакт модуля звукового датчика подключен к аналоговому входному контакту (A6) Nano. Вы можете использовать любой аналоговый вывод, но не забудьте изменить это в программе. Релейный модуль и насос постоянного тока получают питание от внешнего источника постоянного тока 12 В, как показано на рисунке. Входной сигнал релейного модуля подключается к цифровому выходному контакту D10 Nano. Для светового эффекта я выбрал светодиоды двух разных цветов и подключил их к двум выводам цифрового выхода (D12, D11) Nano.
Здесь насос подключен таким образом, что, когда на вход модуля реле подается ВЫСОКИЙ импульс, COM-контакт реле подключается к нормально разомкнутому контакту, и ток получает замкнутый контур, протекающий через насос к активировать поток воды. В противном случае насос останется выключенным. Импульсы HIGH / LOW генерируются Arduino Nano в зависимости от входного звука.
После пайки всей схемы на монтажную плату она будет выглядеть так:
Здесь мы использовали пластиковую коробку в качестве контейнера для фонтана и мини- насос на 5 В в качестве фонтана, мы использовали этот насос ранее в роботе-пожарном:
Программирование Arduino Nano для Танцующего фонтана
Полная программа этого проекта фонтана Arduino приведена внизу страницы. Но здесь я просто объясняю это по частям для лучшего понимания:
Первая часть программы - объявить необходимые переменные для присвоения номеров выводов, которые мы собираемся использовать в следующих блоках программы. Затем определите постоянную REF со значением, которое является опорным значением для модуля звукового датчика. Присвоенное значение 700 является байтовым эквивалентом выходного электрического сигнала звукового датчика.
int sensor = A6; int redled = 12; int greenled = 11; int pump = 10; #define REF 700
В функции настройки void мы использовали функцию pinMode, чтобы назначить направление данных INPUT / OUTPUT контактов. Здесь датчик принимается как ВХОД, а все остальные устройства используются как ВЫХОД.
void setup () { pinMode (датчик, ВХОД); pinMode (помечено, ВЫХОД); pinMode (зеленый, ВЫХОД); pinMode (насос, ВЫХОД); }
Внутри бесконечного цикла , analogRead функция вызывается, которая считывание входного аналогового значения от вывода датчика и сохраняет его в переменной sensor_value .
int sensor_value = analogRead (датчик);
В заключительной части используется цикл if-else для сравнения входного аналогового сигнала с эталонным значением. Если оно больше, чем задание, то на все выходные контакты будет выдан ВЫСОКИЙ выход, так что все светодиоды и помпа будут активированы, в противном случае все останется выключенным. Здесь мы также задали задержку в 70 миллисекунд, чтобы отличить время включения / выключения реле.
если (значение_сенсора> REF) { digitalWrite (выделено зеленым цветом, ВЫСОКИЙ); digitalWrite (выделено красным, ВЫСОКИЙ); digitalWrite (насос, ВЫСОКИЙ); задержка (70); } else { digitalWrite (выделено зеленым цветом, НИЗКИЙ); digitalWrite (выделено красным, LOW); digitalWrite (насос, НИЗКИЙ); задержка (70); }
Вот как работает этот фонтан, управляемый Arduino, ниже приведен полный код с рабочим видео.