Cuprins:

Fântână de dans: Arduino cu MSGEQ7 Spectrum Analyzer: 8 pași
Fântână de dans: Arduino cu MSGEQ7 Spectrum Analyzer: 8 pași
Anonim
Fântână dansatoare: Arduino cu MSGEQ7 Spectrum Analyzer
Fântână dansatoare: Arduino cu MSGEQ7 Spectrum Analyzer

Recepția unui semnal audio și transformarea acestuia în reacție vizuală sau mecanică este foarte interesantă. În acest proiect vom folosi un Arduino Mega pentru a fi conectat la un analizor de spectru MSGEQ7 care preia semnalul audio de intrare și efectuează filtrarea trecerii de bandă pe acesta pentru a-l împărți în 7 benzi de frecvență principale. Arduino va analiza apoi semnalul analogic al fiecărei benzi de frecvență și va crea o acțiune.

Pasul 1: Obiectivele proiectului

Acest proiect va discuta 3 moduri de operare:

  1. LED-urile sunt conectate la pinii digitali PWM pentru a reacționa la benzile de frecvență
  2. LED-urile sunt conectate la pinii digitali pentru a reacționa la benzile de frecvență
  3. Pompele sunt conectate la Arduino Mega prin intermediul driverelor motorului și reacționează la benzile de frecvență

Pasul 2: Teorie

Teorie
Teorie
Teorie
Teorie

Dacă vorbim despre IC-ul MSGEQ7 Spectrum Analyzer putem spune că are filtre interne de trecere cu 7 benzi care împart semnalul audio de intrare în 7 benzi principale: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz și 16 kHz.

Ieșirea fiecărui filtru este aleasă pentru a fi ieșirea CI folosind un multiplexor. Multiplexorul are linii selectoare controlate de un contor binar intern. Deci, putem spune că contorul ar trebui să numere de la 0 la 6 (000 la 110 în binar) pentru a permite trecerea unei benzi la un moment dat. Acest lucru arată clar că codul Arduino ar trebui să poată reseta contorul odată ce atinge numărul 7.

Dacă aruncăm o privire asupra schemei de circuite a MSGEQ7 putem vedea că folosim un tuner de frecvență RC pentru a controla ceasul intern al oscilatorului. apoi folosim elemente RC de filtrare la portul semnalului audio de intrare.

Pasul 3: Proceduri

Proceduri
Proceduri

Conform paginii sursă (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) putem vedea că codul sursă tratează ieșirile ca semnale PWM care sunt repetitive. putem schimba unele dintre liniile de cod pentru a ne îndeplini obiectivele.

Putem observa că, dacă avem o mufă stereo, putem dubla rezistența de intrare și condensatorul la cel de-al doilea canal. Alimentăm MSGEQ7 de la Arduino VCC (5 volți) și GND. Vom conecta MSGEQ7 la placa Arduino. Prefer să folosesc Arduino Mega, deoarece are pini PWM corespunzători proiectului. Ieșirea IC MSGEQ7 este conectată la pinul analogic A0, STROBE este conectat la pinul 2 al Arduino Mega și RESET este conectat la pinul 3.

Pasul 4: Moduri de funcționare: 1- LED-uri ca ieșiri digitale PWM

Moduri de funcționare: 1- LED-uri ca ieșiri digitale PWM
Moduri de funcționare: 1- LED-uri ca ieșiri digitale PWM

Conform codului sursă, putem conecta LED-urile de ieșire la pinii 4-10

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

Apoi, putem observa că LED-urile dansează pe baza puterii fiecărei benzi de frecvență.

Pasul 5: Moduri de funcționare: 2- LED-uri ca ieșiri digitale

Image
Image
Moduri de funcționare: 3- Pompe ca ieșiri digitale
Moduri de funcționare: 3- Pompe ca ieșiri digitale

Putem conecta LED-urile de ieșire la orice pin digital.

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

Apoi, putem observa că LED-urile clipesc la puterea fiecărei benzi de frecvență.

Pasul 6: Moduri de funcționare: 3- Pompe ca ieșiri digitale

Moduri de funcționare: 3- Pompe ca ieșiri digitale
Moduri de funcționare: 3- Pompe ca ieșiri digitale

În acest ultim mod vom conecta modulul driverului de motor L298N la ieșirile Arduino. acest lucru ne permite să controlăm funcționarea pompei pe baza ieșirii analizorului de spectru MSGEQ7.

După cum se știe, driverele motorului ne permit să controlăm funcționarea motoarelor sau pompelor conectate pe baza semnalului generat de la Arduino fără a scufunda curent din Arduino, în schimb alimentează motoarele direct de la sursa de alimentare conectată.

Dacă rulăm codul ca sursă brută, este posibil ca pompele să nu funcționeze corect. Acest lucru se datorează faptului că semnalul PWM este scăzut și nu va fi potrivit pentru conducătorul motorului pentru a rula motoarele sau pompele și pentru a furniza un curent adecvat. De aceea, recomand să măriți valoarea PWM prin înmulțirea citirilor analogice de la A0 cu factor mai mare de 1,3. Acest lucru ajută maparea să fie potrivită pentru șoferul motorului. Recomand 1.4 la 1.6. De asemenea, putem remapa PWM pentru a fi între 50 și 255 pentru a fi siguri că valoarea PWM va fi potrivită.

Putem conecta LED-urile împreună cu ieșirile pentru driverele de motor, dar LED-urile nu vor clipi într-un mod vizibil bun ca înainte, deoarece valorile PWM au fost crescute. Așa că vă sugerez să le păstrați conectate la pinii digitali de la 40 la 52.

Pasul 7: Contacte

Mă bucur să aud feedback-uri de la dvs. Vă rugăm să nu ezitați să vă alăturați canalelor mele pe:

YouTube:

Instagram: @ simplydigital010

Twitter: @ pur și simplu01Digital

Recomandat: