Taula de continguts:

Font de ball: Arduino amb analitzador d'espectre MSGEQ7: 8 passos
Font de ball: Arduino amb analitzador d'espectre MSGEQ7: 8 passos

Vídeo: Font de ball: Arduino amb analitzador d'espectre MSGEQ7: 8 passos

Vídeo: Font de ball: Arduino amb analitzador d'espectre MSGEQ7: 8 passos
Vídeo: 1 Day Vs 10 Years of Playing Launchpad 2024, De novembre
Anonim
Font ballarina: Arduino amb MSGEQ7 Spectrum Analyzer
Font ballarina: Arduino amb MSGEQ7 Spectrum Analyzer

La recepció d’un senyal d’àudio i convertir-lo en reacció visual o mecànica és molt interessant. En aquest projecte utilitzarem un Arduino Mega per connectar-nos a un analitzador d’espectre MSGEQ7 que pren el senyal d’àudio d’entrada i realitza el filtratge de passades de banda per dividir-lo en 7 bandes de freqüència principals. A continuació, l'Arduino analitzarà el senyal analògic de cada banda de freqüència i crearà una acció.

Pas 1: Objectius del projecte

En aquest projecte es debatran tres modes de funcionament:

  1. Els LED estan connectats a pins digitals PWM per reaccionar a les bandes de freqüència
  2. Els LED estan connectats a pins digitals per reaccionar a les bandes de freqüència
  3. Les bombes es connecten a l’Arduino Mega mitjançant controladors de motor i reaccionen a les bandes de freqüència

Pas 2: teoria

Teoria
Teoria
Teoria
Teoria

Si parlem de l’IC de l’analitzador d’espectre MSGEQ7 podem dir que té filtres passos de 7 bandes interns que divideixen el senyal d’àudio d’entrada en 7 bandes principals: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2,5 kHz, 6,25 kHz i 16 kHz.

La sortida de cada filtre es tria com la sortida del CI mitjançant un multiplexor. Aquest multiplexor té línies de selecció controlades per un comptador binari intern. Per tant, podem dir que el comptador hauria de comptar de 0 a 6 (000 a 110 en binari) per permetre passar una banda alhora. Això deixa clar que el codi de l’Arduino hauria de ser capaç de restablir el comptador un cop arribi al recompte 7.

Si fem una ullada al diagrama de circuits del MSGEQ7, podem veure que utilitzem sintonitzador de freqüència RC per controlar el rellotge intern de l’oscil·lador. a continuació, fem servir elements de filtratge RC al port del senyal d'àudio d'entrada.

Pas 3: Procediments

Tràmits
Tràmits

Segons la pàgina font (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) podem veure que el codi font tracta les sortides com a senyals PWM que són repetitives. podem canviar algunes de les línies de codi per adaptar-los als nostres objectius.

Podem notar que si tenim un jack estèreo, podem duplicar la resistència d’entrada i el condensador al segon canal. Alimentem el MSGEQ7 des de l’Arduino VCC (5 volts) i el GND. Connectarem el MSGEQ7 a la placa Arduino. Prefereixo utilitzar l'Arduino Mega, ja que té pins PWM adequats per al projecte. La sortida del MSGEQ7 IC està connectada al pin analògic A0, el STROBE està connectat al pin 2 de l’Arduino Mega i el RESET es connecta al pin 3.

Pas 4: modes d'operació: 1- LEDs com a sortides digitals PWM

Modes de funcionament: 1- LEDs com a sortides digitals PWM
Modes de funcionament: 1- LEDs com a sortides digitals PWM

Segons el codi font, podem connectar els LED de sortida als pins 4-10

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

Llavors podem notar que els LED ballen sobre la força de cada banda de freqüència.

Pas 5: modes d'operació: 2- LEDs com a sortides digitals

Image
Image
Modes de funcionament: 3- Bombes com a sortides digitals
Modes de funcionament: 3- Bombes com a sortides digitals

Podem connectar els LED de sortida a qualsevol pin digital.

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

Llavors podem notar que els LED parpellegen en funció de la força de cada banda de freqüència.

Pas 6: Modes de funcionament: 3- Bombes com a sortides digitals

Modes de funcionament: 3- Bombes com a sortides digitals
Modes de funcionament: 3- Bombes com a sortides digitals

En aquest darrer mode connectarem el mòdul del controlador del motor L298N a les sortides de l’Arduino. això ens permet controlar el funcionament de la bomba en funció de la sortida de l'analitzador d'espectre MSGEQ7.

Com se sap, els controladors de motors ens permeten controlar el funcionament dels motors o bombes connectats basant-se en el senyal generat des de l’Arduino sense enfonsar cap corrent de l’Arduino, en comptes d’això alimenten els motors directament des de la font d’energia connectada.

Si executem el codi com a font bruta, és possible que les bombes no funcionin correctament. Això es deu al fet que el senyal PWM és baix i no serà adequat perquè el conductor del motor faci funcionar els motors o les bombes i proporcioni un corrent adequat. És per això que recomano augmentar el valor PWM multiplicant les lectures analògiques d'A0 amb un factor superior a 1,3. Això ajuda a que el mapatge sigui adequat per al conductor del motor. Recomano 1.4 a 1.6. També podem tornar a mapear el PWM de 50 a 255 per assegurar-nos que el valor PWM serà adequat.

Podem connectar els LED juntament amb les sortides dels controladors de motor, però els LED no parpellejaran de manera visible com abans, ja que s’han augmentat els valors de PWM. Per tant, us proposo mantenir-los connectats als pins digitals de 40 a 52.

Pas 7: Contactes

Estic molt content de rebre comentaris vostres. No dubteu a unir-vos als meus canals a:

YouTube:

Instagram: @ simplementdigital010

Twitter: @ simply01Digital

Recomanat: