Obsah:

Tančící fontána: Arduino s analyzátorem spektra MSGEQ7: 8 kroků
Tančící fontána: Arduino s analyzátorem spektra MSGEQ7: 8 kroků

Video: Tančící fontána: Arduino s analyzátorem spektra MSGEQ7: 8 kroků

Video: Tančící fontána: Arduino s analyzátorem spektra MSGEQ7: 8 kroků
Video: DIY MINI FOUNTAIN SHOW LIKE DUBAI - ARDUINO 2024, Listopad
Anonim
Tančící fontána: Arduino s analyzátorem spektra MSGEQ7
Tančící fontána: Arduino s analyzátorem spektra MSGEQ7

Velmi zajímavý je příjem zvukového signálu a jeho přeměna na vizuální nebo mechanickou reakci. V tomto projektu použijeme Arduino Mega k připojení k spektrálnímu analyzátoru MSGEQ7, který převezme vstupní zvukový signál a provede na něm pásmovou filtraci, aby jej rozdělil do 7 hlavních frekvenčních pásem. Arduino poté analyzuje analogový signál každého frekvenčního pásma a vytvoří akci.

Krok 1: Cíle projektu

Tento projekt bude diskutovat o 3 režimech provozu:

  1. LED diody jsou připojeny k digitálním pinům PWM, aby reagovaly na frekvenční pásma
  2. LED diody jsou připojeny k digitálním pinům, aby reagovaly na frekvenční pásma
  3. Čerpadla jsou připojena k Arduino Mega prostřednictvím ovladačů motoru a reagují na frekvenční pásma

Krok 2: Teorie

Teorie
Teorie
Teorie
Teorie

Pokud hovoříme o MSGEQ7 Spectrum Analyzer IC, můžeme říci, že má interní 7pásmové filtry, které rozdělují vstupní zvukový signál do 7 hlavních pásem: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz a 16 kHz.

Výstup každého filtru je vybrán jako výstup IC pomocí multiplexeru. Tento multiplexor má volicí linky řízené interním binárním čítačem. Můžeme tedy říci, že čítač by měl počítat od 0 do 6 (000 až 110 v binárním), aby umožnilo průchod jednoho pásma současně. To jasně ukazuje, že kód Arduina by měl být schopen resetovat počítadlo, jakmile dosáhne počtu 7.

Pokud se podíváme na schéma zapojení MSGEQ7, vidíme, že používáme RC frekvenční tuner k ovládání vnitřních hodin oscilátoru. poté použijeme filtrační RC prvky na portu vstupního zvukového signálu.

Krok 3: Postupy

Postupy
Postupy

Podle zdrojové stránky (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) vidíme, že se zdrojový kód zabývá výstupy jako signály PWM, které se opakují. můžeme změnit některé řádky kódu tak, aby vyhovovaly našim cílům.

Můžeme si všimnout, že pokud máme stereo jack, můžeme zdvojnásobit vstupní odpor a kondenzátor do druhého kanálu. Napájíme MSGEQ7 z Arduino VCC (5 voltů) a GND. Připojíme MSGEQ7 k desce Arduino. Raději používám Arduino Mega, protože má PWM piny vhodné pro projekt. Výstup IC MSGEQ7 je připojen k analogovému pinu A0, STROBE je připojen ke kolíku 2 Arduino Mega a RESET je připojen ke kolíku 3.

Krok 4: Provozní režimy: 1- LED diody jako digitální výstupy PWM

Provozní režimy: 1- LED diody jako digitální výstupy PWM
Provozní režimy: 1- LED diody jako digitální výstupy PWM

Podle zdrojového kódu můžeme výstupní LED připojit na piny 4 až 10

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

Pak si můžeme všimnout, že LED diody tančí na síle každého frekvenčního pásma.

Krok 5: Provozní režimy: 2 LED diody jako digitální výstupy

Image
Image
Provozní režimy: 3- pumpy jako digitální výstupy
Provozní režimy: 3- pumpy jako digitální výstupy

Výstupní LED můžeme připojit k jakýmkoli digitálním pinům.

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

Pak si můžeme všimnout, že LED bliká na síle každého frekvenčního pásma.

Krok 6: Provozní režimy: 3- pumpy jako digitální výstupy

Provozní režimy: 3- pumpy jako digitální výstupy
Provozní režimy: 3- pumpy jako digitální výstupy

V tomto posledním režimu připojíme modul ovladače motoru L298N k výstupům Arduina. to nám umožňuje řídit provoz čerpadla na základě výstupu spektrálního analyzátoru MSGEQ7.

Jak je známo, ovladače motorů nám umožňují řídit provoz připojených motorů nebo čerpadel na základě generovaného signálu z Arduina bez potopení jakéhokoli proudu z Arduina, místo toho napájí motory přímo z připojeného zdroje energie.

Pokud spustíme kód jako nezpracovaný zdroj, pumpy nemusí správně fungovat. Je to proto, že signál PWM je nízký a nebude vhodný pro řidiče motoru k spouštění motorů nebo čerpadel a dodávce vhodného proudu. Proto doporučuji zvýšit hodnotu PWM vynásobením analogových hodnot od A0 s faktorem větším než 1,3. To pomáhá mapování být vhodné pro řidiče motoru. Doporučuji 1,4 až 1,6. Můžeme také přemapovat PWM na 50 až 255, abychom si byli jisti, že hodnota PWM bude vhodná.

Můžeme připojit LED diody společně s výstupy pro ovladače motorů, ale LED diody nebudou blikat viditelným způsobem jako dříve, protože byly zvýšeny hodnoty PWM. Doporučuji tedy ponechat je připojené k digitálním pinům 40 až 52.

Krok 7: Kontakty

Jsem rád, že od vás slyším zpětnou vazbu. Neváhejte se připojit k mým kanálům na:

YouTube:

Instagram: @simplydigital010

Twitter: @simply01Digital

Doporučuje: