Sommario:
- Passaggio 1: cose di cui abbiamo bisogno per questo progetto (requisiti)
- Passaggio 2: teoria da ADC a PWM
- Passaggio 3: schematico
- Passaggio 4: test finale
Video: Riproduci brani con Arduino utilizzando ADC a PWM su trasformatore flyback o altoparlante: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ciao ragazzi, Questa è la seconda parte del mio altro istruibile (che è stato molto difficile), Fondamentalmente, in questo progetto, ho usato l'ADC e i TIMER sul mio Arduino per convertire il segnale audio in un segnale PWM.
Questo è molto più semplice del mio precedente Instructable, ecco il link del mio primo Instructable se vuoi vedere. collegamento
Per capire la teoria del segnale Audio, Bitrate, Bit depth, Sampling rate, puoi leggere la teoria nel mio ultimo tutorial su Instructable. Il link è sopra.
Passaggio 1: cose di cui abbiamo bisogno per questo progetto (requisiti)
1. Scheda Arduino (possiamo usare qualsiasi scheda (328, 2560) cioè Mega, Uno, Mini, ecc. Ma con pin diversi specifici)
2. PC con Arduino Studio.
3. Tagliere o Perfboard
4. Cavi di collegamento
5. TC4420 (driver Mosfet o qualcosa del genere)
6. Power Mosfet (canale N o P, collegare quindi di conseguenza) (ho usato il canale N)
7. Altoparlante o trasformatore flyback (sì, hai letto bene!!)
8. Alimentatore adatto (0-12V) (ho usato il mio alimentatore ATX)
9. Dissipatore di calore (l'ho recuperato dal mio vecchio PC).
10. Un amplificatore (normale amplificatore musicale) o circuito amplificatore.
Passaggio 2: teoria da ADC a PWM
Quindi, in questo progetto, ho utilizzato l'ADC integrato di Arduino per eseguire il campionamento dei dati di un segnale audio.
ADC (Analog-To-Digital Converter) come definisce il nome, ADC converte il segnale analogico in campioni digitali. E per Arduino con una profondità massima di 10 bit. Ma per questo progetto, useremo il campionamento a 8 bit.
Durante l'utilizzo dell'ADC di Arduino, dobbiamo tenere a mente l'ADC_reference Voltage.
Arduino Uno offre 1.1V, 5V (riferimento interno, che può essere impostato definendo nel codice) o un riferimento esterno (che dobbiamo applicare esternamente al pin AREF).
Secondo la mia esperienza, un minimo di 2.0V dovrebbe essere usato come tensione di riferimento per ottenere un buon risultato dall'ADC. Come 1.1V non è andato bene almeno per me. (Esperienza personale)
*IMPORTANTE* *IMPORTANTE**IMPORTANTE**IMPORTANTE**IMPORTANTE*
Dobbiamo utilizzare un segnale audio amplificato da un amplificatore o un circuito amplificatore con una tensione di picco (tensione massima) di 5 V
Perché ho impostato il riferimento di tensione interno di 5 V, per il nostro progetto. E sto usando un segnale amplificato usando un normale amplificatore (amplificatore musicale), che è per lo più disponibile nella nostra famiglia o puoi costruirne uno per te.
Quindi ora la parte principale. Frequenza di campionamento, che è la quantità di campioni che il nostro ADC richiede al secondo, più è il tasso di conversione, migliore sarà il risultato in uscita, più simile sarà l'onda in uscita rispetto all'ingresso.
Quindi, useremo una frequenza di campionamento di 33,33 Khz in questo progetto, impostando il clock dell'ADC a 500 Khz. Per capire come è così, dobbiamo vedere la pagina di temporizzazione dell'ADC nella scheda tecnica del chip Atmega (328p).
Possiamo vedere che abbiamo bisogno di 13,5 cicli di clock ADC per completare un campione con il campionamento automatico. Con una frequenza di 500Khz, significa 1/500Khz=2uS per un ciclo ADC, il che significa che sono necessari 13,5*2uS=27uS per completare un campione quando si utilizza il campionamento automatico. Dando 3uS in più al microcontrollore (per sicurezza), ottenendo un totale di 30uS totali per un campione.
Quindi 1 campione a 30uS significa 1/30uS=33,33 KSamples/S.
Per impostare la frequenza di campionamento, che dipende da TIMER0 di Arduino, poiché il trigger di campionamento automatico ADC dipende da quello nel nostro caso, come puoi vedere anche nel codice e nel foglio dati, abbiamo creato il valore di OCR0A = 60 (Perché così ???)
Perché secondo la formula indicata nella scheda tecnica.
frequency(o qui Sample Rate)=Clock frequency di Arduino/Prescaler*Value of OCR0A (nel nostro caso)
Frequenza o frequenza di campionamento che vogliamo = 33,33 KHz
Frequenza di clock = 16 MHz
Valore di prescaler=8 (nel nostro caso)
Valore di OCR0A=vogliamo trovare??
che dà semplicemente OCR0A=60, anche nel nostro codice Arduino.
TIMER1 è usato per l'onda portante di un segnale audio, e non entrerò in così tanti dettagli su questo.
Quindi, questa era la breve teoria del concetto da ADC a PWM con Arduino.
Passaggio 3: schematico
Collegare tutti i componenti come mostrato nello schema. Quindi hai qui due opzioni: -
1. Collegare un altoparlante (collegato con 5V)
2. Collegare un trasformatore flyback (collegato a 12V)
Ho provato entrambi. Ed entrambi funzionano abbastanza bene.
*IMPORTANTE* *IMPORTANTE**IMPORTANTE**IMPORTANTE**IMPORTANTE*Dobbiamo utilizzare un segnale audio amplificato da un amplificatore o un circuito amplificatore con una tensione di picco (tensione massima) di 5V
Disclaimer:-
* Raccomando di usare il trasformatore flyback con precauzione in quanto può essere pericoloso perché produce alte tensioni. E non sarò responsabile di alcun danno.*
Passaggio 4: test finale
Quindi carica il codice fornito sul tuo Arduino e collega il segnale amplificato al pin A0.
E non dimenticare di collegare tutti i pin di terra a una terra comune.
E divertiti ad ascoltare la musica.
Consigliato:
Driver per trasformatore flyback per principianti: 11 passaggi (con immagini)
Driver per trasformatore flyback per principianti: lo schema è stato aggiornato con un transistor migliore e include una protezione di base del transistor sotto forma di condensatore e diodo. Il "andare oltre" pagina ora include un modo per misurare questi illustri picchi di tensione con un voltmetro
Riproduci brani (MP3) con Arduino utilizzando PWM su altoparlante o trasformatore flyback: 6 passaggi (con immagini)
Riproduci brani (MP3) con Arduino usando PWM su altoparlante o trasformatore flyback: Ciao ragazzi, questo è il mio primo istruttore, spero che ti piaccia!! Fondamentalmente, in questo progetto ho usato la comunicazione seriale tra il mio Arduino e il mio laptop, per trasmettere dati musicali dal mio laptop ad Arduino. E usando i TIMER di Arduino t
Riproduci CD senza lettore CD, utilizzando AI e YouTube: 10 passaggi (con immagini)
Riproduci CD senza lettore CD, utilizzando AI e YouTube: vuoi riprodurre i tuoi CD ma non hai più un lettore CD? Non hai avuto il tempo di copiare i tuoi CD? Li ho strappati ma i file non sono disponibili quando necessario? Nessun problema. Lascia che l'AI (intelligenza artificiale) identifichi il tuo CD e YouTube lo riproduca! Ho scritto un'app per Android facendo
Riproduci Bluetooth su Sonos utilizzando Raspberry Pi: 25 passaggi
Riproduci Bluetooth su Sonos utilizzando Raspberry Pi: in precedenza ho scritto un'istruzione che descrive come aggiungere un line-in aux o analogico a Sonos utilizzando un Raspberry Pi. Un lettore ha chiesto se sarebbe possibile trasmettere l'audio bluetooth dal suo telefono a Sonos. È facile farlo usando un dongle bluetooth
Trasformatore flyback 20, 000v: 5 passaggi
Trasformatore flyback da 20.000 V: questo è un trasformatore flyback collegato a un condensatore di carica rapida e 2 circuiti flash della fotocamera