Оглавление:

Танцующий фонтан: Arduino с анализатором спектра MSGEQ7: 8 шагов
Танцующий фонтан: Arduino с анализатором спектра MSGEQ7: 8 шагов

Видео: Танцующий фонтан: Arduino с анализатором спектра MSGEQ7: 8 шагов

Видео: Танцующий фонтан: Arduino с анализатором спектра MSGEQ7: 8 шагов
Видео: Дом-эквалайзер 2024, Ноябрь
Anonim
Танцующий фонтан: Arduino с анализатором спектра MSGEQ7
Танцующий фонтан: Arduino с анализатором спектра MSGEQ7

Очень интересен прием звукового сигнала и преобразование его в визуальную или механическую реакцию. В этом проекте мы будем использовать Arduino Mega для подключения к анализатору спектра MSGEQ7, который принимает входной аудиосигнал и выполняет полосовую фильтрацию на нем, чтобы разделить его на 7 основных частотных диапазонов. Затем Arduino проанализирует аналоговый сигнал каждой полосы частот и создаст действие.

Шаг 1: Цели проекта

В этом проекте будут обсуждаться 3 режима работы:

  1. Светодиоды подключены к цифровым выводам PWM, чтобы реагировать на диапазоны частот.
  2. Светодиоды подключены к цифровым контактам, чтобы реагировать на диапазоны частот.
  3. Насосы подключаются к Arduino Mega через драйверы двигателей и реагируют на диапазоны частот.

Шаг 2: теория

Теория
Теория
Теория
Теория

Если мы говорим об ИС анализатора спектра MSGEQ7, мы можем сказать, что он имеет 7 внутренних полосовых фильтров, которые делят входной аудиосигнал на 7 основных полос: 63 Гц, 160 Гц, 400 Гц, 1 кГц, 2,5 кГц, 6,25 кГц и 16. кГц.

Выход каждого фильтра выбирается как выход IC с помощью мультиплексора. Этот мультиплексор имеет линии селекторов, управляемые внутренним двоичным счетчиком. Таким образом, мы можем сказать, что счетчик должен считать от 0 до 6 (от 000 до 110 в двоичном формате), чтобы пропускать одну полосу за раз. Это дает понять, что код Arduino должен иметь возможность сбрасывать счетчик, когда он достигает счетчика 7.

Если мы посмотрим на принципиальную схему MSGEQ7, то увидим, что мы используем RC-тюнер частоты для управления внутренними часами генератора. Затем мы используем фильтрующие RC-элементы на входе входного аудиосигнала.

Шаг 3: Процедуры

Процедуры
Процедуры

Согласно исходной странице (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) мы видим, что исходный код обрабатывает выходы как повторяющиеся сигналы ШИМ. мы можем изменить некоторые строки кода в соответствии с нашими целями.

Мы можем заметить, что если у нас есть стереоразъем, мы можем удвоить входной резистор и конденсатор для второго канала. Мы запитываем MSGEQ7 от Arduino VCC (5 вольт) и GND. Подключим MSGEQ7 к плате Arduino. Я предпочитаю использовать Arduino Mega, так как у него есть контакты PWM, подходящие для проекта. Выход микросхемы MSGEQ7 подключается к аналоговому выводу A0, STROBE подключается к выводу 2 Arduino Mega, а RESET подключается к выводу 3.

Шаг 4: Режимы работы: 1- светодиоды как цифровые выходы ШИМ

Режимы работы: 1- светодиоды как цифровые выходы ШИМ
Режимы работы: 1- светодиоды как цифровые выходы ШИМ

Согласно исходному коду, мы можем подключить выходные светодиоды к контактам с 4 по 10.

const int LED_pins [7] = {4, 5, 6, 7, 8, 9, 10};

Затем мы можем заметить, как светодиоды танцуют в зависимости от силы каждой полосы частот.

Шаг 5: Режимы работы: 2 светодиода в качестве цифровых выходов

Image
Image
Режимы работы: 3 насоса в качестве цифровых выходов
Режимы работы: 3 насоса в качестве цифровых выходов

Мы можем подключить выходные светодиоды к любым цифровым выводам.

const int LED_pins [7] = {40, 42, 44, 46, 48, 50, 52};

Затем мы можем заметить, что светодиоды мигают на каждой полосе частот.

Шаг 6: Режимы работы: 3 насоса в качестве цифровых выходов

Режимы работы: 3 насоса в качестве цифровых выходов
Режимы работы: 3 насоса в качестве цифровых выходов

В этом последнем режиме мы подключим модуль драйвера двигателя L298N к выходам Arduino. это позволяет нам управлять работой насоса на основе выходного сигнала анализатора спектра MSGEQ7.

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

Если мы запустим код как исходный код, насосы могут работать некорректно. Это связано с тем, что сигнал ШИМ низкий и не подходит для привода двигателя для запуска двигателей или насосов и подачи подходящего тока. Поэтому я рекомендую увеличить значение ШИМ, умножив аналоговые показания от A0 на коэффициент больше 1,3. Это помогает сопоставлению быть подходящим для водителя двигателя. Рекомендую от 1,4 до 1,6. Также мы можем переназначить ШИМ с 50 на 255, чтобы быть уверенным, что значение ШИМ будет подходящим.

Мы можем соединить светодиоды вместе с выходами для драйверов двигателей, но светодиоды не будут мигать хорошо видимым образом, как раньше, поскольку значения ШИМ были увеличены. Поэтому я предлагаю оставить их подключенными к цифровым контактам с 40 по 52.

Шаг 7: Контакты

Так рада услышать от вас отзывы. Присоединяйтесь к моим каналам на:

YouTube:

Instagram: @ justdigital010

Twitter: @ just01Digital

Рекомендуемые: