Taula de continguts:
- Pas 1: coses que necessitem per a aquest projecte (requisits)
- Pas 2: teoria de l'ADC a PWM
- Pas 3: Esquema
- Pas 4: prova final
Vídeo: Reprodueix cançons amb Arduino mitjançant ADC a PWM a Flyback Transformer o Speaker: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Hola nois, Aquesta és la segona part de la meva altra instrucció (que era molt difícil). Bàsicament, en aquest projecte he utilitzat l'ADC i els TIMERS del meu Arduino per convertir el senyal d'àudio en un senyal PWM.
Això és molt més fàcil que el meu anterior instructable, aquí teniu l'enllaç del meu primer instructable si voleu veure-ho. enllaç
Per entendre la teoria del senyal d'àudio, la velocitat de bits, la profunditat de bits, la freqüència de mostreig, podeu llegir la teoria al meu últim tutorial sobre instructable. L’enllaç és a sobre.
Pas 1: coses que necessitem per a aquest projecte (requisits)
1. Taula Arduino (podem utilitzar qualsevol tauler (328, 2560), és a dir, Mega, Uno, Mini, etc, però amb pins diferents específics)
2. PC amb Arduino Studio.
3. Tauler de perfils o tauler de perfils
4. Connexió de cables
5. TC4420 (controlador Mosfet o tal cosa)
6. Potència Mosfet (canal N o P, si us plau, connecteu-lo en conseqüència) (he utilitzat el canal N)
7. Altaveu o transformador Flyback (Sí, ho heu llegit bé !!)
8. Font d'alimentació adequada (0-12V) (he utilitzat la meva pròpia font d'alimentació ATX)
9. Dissipador de calor (he recuperat del meu antic PC).
10. Un amplificador (amplificador de música normal) o un circuit d'amplificador.
Pas 2: teoria de l'ADC a PWM
Per tant, en aquest Projecte he utilitzat en ADC d'Arduino construït per fer mostreig de dades d'un senyal d'àudio.
ADC (convertidor analògic a digital) com el seu nom defineix, ADC converteix el senyal analògic en mostres digitals. I per a Arduino amb una profunditat màxima de 10 bits. Però, per a aquest projecte, farem servir mostreig de 8 bits.
Mentre fem servir l’ADC d’Arduino, hem de tenir present el voltatge ADC_reference.
Arduino Uno ofereix 1.1V, 5V (referència interna, que es pot definir definint en codi) o una referència externa (que hem d'aplicar externament al pin AREF).
Segons la meva experiència, s’hauria d’utilitzar un mínim de 2,0 V com a tensió de referència per obtenir un bon resultat de l’ADC. Com que 1.1V no em va anar bé almenys. (Experiència personal)
* IMPORTANT * * IMPORTANT ** IMPORTANT ** IMPORTANT ** IMPORTANT *
Hem d’utilitzar un senyal d’àudio amplificat d’un amplificador o un circuit d’amplificació amb un voltatge màxim (tensió màxima) de 5V
Perquè he establert la referència de tensió interna de 5V per al nostre projecte. I estic fent servir un senyal amplificat mitjançant un amplificador normal (amplificador de música), que està disponible principalment a la nostra llar o podeu crear-ne un per vosaltres mateixos.
Així que ara la part principal. Taxa de mostreig, que és la quantitat de mostres que pren el nostre ADC per segon, més és la taxa de conversió, millor serà el resultat de sortida, més similar serà l’ona de sortida en comparació amb l’entrada.
Per tant, utilitzarem una freqüència de mostreig de 33,33 Khz en aquest projecte, establint el rellotge ADC a 500 Khz. Per entendre com és així, hem de veure la pàgina de sincronització ADC a la fitxa tècnica del xip Atmega (328p).
Podem veure que necessitem 13,5 cicles de rellotge ADC per completar una mostra amb mostreig automàtic. Amb una freqüència de 500 Khz, significa 1/500 Khz = 2uS per a un cicle ADC, el que significa que es necessiten 13,5 * 2uS = 27uS per completar una mostra quan s’utilitza el mostreig automàtic. En donar 3uS més al microcontrolador (per al costat segur), obteniu un total de 30uS totalment per a una mostra.
Per tant, 1 Mostra a 30uS significa 1 / 30uS = 33,33 KSamples / S.
Per establir la freqüència de mostreig, que depèn de TIMER0 d'Arduino, perquè el disparador de mostreig automàtic ADC depèn d'aquest en el nostre cas, com també podeu veure al codi i a la fitxa tècnica, hem fet el valor de OCR0A = 60 (Per què?) ???)
Perquè segons la fórmula donada al full de dades.
freqüència (o aquí Sample Rate) = Freqüència de rellotge d'Arduino / Prescaler * Valor de OCR0A (en el nostre cas)
Freqüència o freqüència de mostra que volem = 33,33 KHz
Freqüència de rellotge = 16 MHz
Valor del preescalador = 8 (en el nostre cas)
Valor de OCR0A = volem trobar ??
que simplement dóna OCR0A = 60, també al nostre codi Arduino.
TIMER1 s'utilitza per a l'ona portadora d'un senyal d'àudio, i no entraré en tants detalls d'això.
Per tant, aquesta era la breu teoria del concepte d’ADC a PWM amb Arduino.
Pas 3: Esquema
Connecteu tots els components tal com es mostra a l'esquema. Teniu aquí dues opcions: -
1. Connecteu un altaveu (connectat amb 5V)
2. Connecteu un transformador Flyback (connectat amb 12V)
He provat les dues coses. I tots dos funcionen força bé.
* IMPORTANT * * IMPORTANT ** IMPORTANT ** IMPORTANT ** IMPORTANT * Necessitem utilitzar un senyal d'àudio amplificat d'un amplificador o un circuit d'amplificador amb una tensió màxima (tensió màxima) de 5V
Exempció de responsabilitat: -
* Recomano utilitzar Flyback Transformer amb precaució, ja que pot ser perillós perquè produeix altes tensions. I no seré responsable de cap dany. *
Pas 4: prova final
Per tant, pengeu el codi donat al vostre Arduino i connecteu el senyal amplificat al pin A0.
I no oblideu connectar tots els pins de terra a una terra comuna.
I simplement gaudeix escoltant música.
Recomanat:
Reprodueix vídeo amb ESP32: 10 passos (amb imatges)
Reproduir vídeo amb ESP32: aquest manual de instruccions mostra alguna cosa sobre la reproducció de vídeo i àudio amb ESP32
Reproduir cançons (MP3) amb Arduino mitjançant PWM a l'altaveu o al transformador Flyback: 6 passos (amb imatges)
Reproduir cançons (MP3) amb Arduino mitjançant PWM a l’altaveu o al transformador Flyback: Hola nois, aquest és el meu primer instructable, espero que us agradi !! Bàsicament, en aquest projecte he utilitzat la comunicació en sèrie entre el meu Arduino i el meu portàtil, per transmetre dades musicals del meu ordinador portàtil a l'Arduino. I utilitzant els temporitzadors Arduino t
Reprodueix Bluetooth a Sonos mitjançant Raspberry Pi: 25 passos
Reproduir Bluetooth a Sonos amb Raspberry Pi: anteriorment vaig escriure una instrucció que descrivia com afegir una línia auxiliar o analògica a Sonos mitjançant un Raspberry Pi. Un lector va preguntar si seria possible transmetre àudio bluetooth des del seu telèfon a Sonos. És fàcil fer-ho amb un dongle bluetooth
Reprodueix música amb Arduino !: 5 passos (amb imatges)
Reproduir música amb Arduino !: En aquest instructiu, us mostraré com toco música amb un mòdul Arduino UNO i una targeta SD. Utilitzarem la comunicació SPI. Comencem
Reproduir cançons amb el pas a pas !!: 11 passos (amb imatges)
Reproduir cançons amb el pas a pas !!: aquest projecte tracta de dissenyar una interfície dinàmica senzilla que permeti interactuar amb un motor pas a pas de dues maneres diferents. La primera interfície controlarà la direcció i la velocitat del motor pas a pas mitjançant l’ús d’un GUI simple, que h