Съдържание:

Танцуващ фонтан: 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: Теория

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

Ако говорим за ICGE Spectrum Analyzer IC, можем да кажем, че той има вътрешни 7 лентови филтри, които разделят входния аудио сигнал на 7 основни ленти: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2.5 kHz, 6.25 kHz и 16 kHz.

Изходът на всеки филтър е избран да бъде изходът на интегралната схема с помощта на мултиплексор. Този мултиплексор има селекторни линии, контролирани от вътрешен двоичен брояч. Така че можем да кажем, че броячът трябва да брои от 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 IC е свързан към аналогов извод 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, вместо това те захранват двигателите директно от свързания източник на захранване.

Ако стартираме кода като суров източник, помпите може да не работят правилно. Това е така, защото PWM сигналът е нисък и няма да е подходящ за водача на двигателя да управлява двигателите или помпите и да доставя подходящ ток. Ето защо препоръчвам да увеличите стойността на ШИМ, като умножите аналоговите показания от А0 с коефициент по -голям от 1,3. Това помага картографирането да е подходящо за водача на двигателя. Препоръчвам от 1.4 до 1.6. Също така можем да пренастроим ШИМ на 50 до 255, за да сме сигурни, че стойността на ШИМ ще бъде подходяща.

Можем да свържем светодиодите заедно с изходите за драйверите на двигателя, но светодиодите няма да мигат по добре видим начин, както преди, тъй като стойностите на ШИМ бяха увеличени. Затова предлагам да ги поддържате свързани с цифровите щифтове 40 до 52.

Стъпка 7: Контакти

Толкова се радвам да чуя отзиви от вас. Моля, не се колебайте да се присъедините към каналите ми на:

YouTube:

Instagram: @simplydigital010

Twitter: @simply01Digital

Препоръчано: