Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Bok dečki, Ovo je drugi dio moje druge instrukcije (što je bilo mnogo teško). U osnovi, u ovom projektu sam koristio ADC i TIMERS na svom Arduinu za pretvaranje audio signala u PWM signal.
Ovo je mnogo lakše od mog prethodnog Instructable -a, evo veze mog prvog Instructable -a ako želite vidjeti. veza
Da biste razumjeli teoriju audio signala, brzinu prijenosa, dubinu bita, brzinu uzorkovanja, teoriju možete pročitati u mom zadnjem vodiču na stranici Instructable. Link je gore.
Korak 1: Stvari koje su nam potrebne za ovaj projekt (zahtjevi)
1. Arduino ploča (možemo koristiti bilo koju ploču (328, 2560), tj. Mega, Uno, Mini itd., Ali s određenim različitim pinovima)
2. PC s Arduino Studiom.
3. Breadboard ili Perfboard
4. Spajanje žica
5. TC4420 (vozač Mosfeta ili tako nešto)
6. Uključite Mosfet (N ili P kanal, molimo vas da spojite žicu prema tome) (koristio sam N-kanal)
7. Zvučnik ili Flyback transformator (Da, dobro ste pročitali !!)
8. Prikladno napajanje (0-12V) (koristio sam vlastito ATX napajanje)
9. Hladnjak (spasio sam sa svog starog računala).
10. Pojačalo (normalno glazbeno pojačalo) ili krug pojačala.
Korak 2: Teorija ADC -a na PWM
Tako sam u ovom projektu koristio ugrađeni ADC iz Arduina za uzorkovanje podataka audio signala.
ADC (analogno-digitalni pretvarač) kako naziv definira, ADC pretvara analogni signal u digitalne uzorke. A za Arduino s maksimalno 10-bitnom dubinom. No, za ovaj projekt koristit ćemo 8-bitno uzorkovanje.
Dok koristimo ADC iz Arduina, moramo imati na umu napon ADC_referencije.
Arduino Uno nudi 1,1 V, 5 V (unutarnja referenca, koja se može postaviti definiranjem u kodu) ili vanjska referenca (koju moramo primijeniti izvana na AREF pin).
Prema mom iskustvu, kao referentni napon treba koristiti minimalno 2.0V da bi se dobio dobar rezultat od ADC -a. Kako 1.1V barem meni nije išao. (Osobno iskustvo)
*VAŽNO**VAŽNO ** VAŽNO ** VAŽNO ** VAŽNO*
Moramo koristiti pojačani audio signal iz pojačala ili kruga pojačala s vršnim naponom (maksimalni napon) od 5V
Zato što sam za naš projekt postavio internu referencu napona od 5V. I ja koristim pojačani signal pomoću normalnog pojačala (pojačalo za glazbu), koje je uglavnom dostupno u našem domaćinstvu ili ga možete sami izgraditi.
Dakle, sada glavni dio. Brzina uzorkovanja, koliko uzoraka uzima naš ADC u sekundi, veća je stopa konverzije, bolji će biti izlazni rezultat, sličniji će biti izlazni val u usporedbi s ulaznim.
Dakle, u ovom ćemo projektu koristiti brzinu uzorkovanja od 33,33Khz, postavljanjem sata ADC -a na 500Khz. Da bismo razumjeli kako je to, moramo vidjeti stranicu za mjerenje vremena ADC -a u podatkovnom listu Atmega (328p) čipa.
Vidimo da nam je potrebno 13,5 ciklusa takta ADC -a da bismo dovršili jedan uzorak s automatskim uzorkovanjem. S frekvencijom od 500Khz, to znači 1/500Khz = 2uS za jedan ciklus ADC -a, što znači da je potrebno 13,5*2uS = 27uS za dovršetak uzorka kada se koristi automatsko uzorkovanje. Dajući 3uS više mikrokontroleru (za sigurnu stranu), izrađujući ukupno 30uS ukupno za jedan uzorak.
Dakle, 1 uzorak pri 30uS znači 1/30uS = 33,33 KSuzora/S.
Da bismo postavili brzinu uzorkovanja, koja ovisi o TIMER0 na Arduinu, jer okidač automatskog uzorkovanja ADC -a ovisi o tome u našem slučaju, što možete vidjeti i u kodu i tablici s podacima, napravili smo vrijednost OCR0A = 60 (Zašto je tako ???)
Jer prema formuli danoj u podatkovnom listu.
frekvencija (ili ovdje Sample Rate) = Taktna frekvencija Arduina/Prescalera*Vrijednost OCR0A (u našem slučaju)
Željena frekvencija ili brzina uzorkovanja = 33,33KHz
Taktna frekvencija = 16MHz
Vrijednost predmjerača = 8 (u našem slučaju)
Vrijednost OCR0A = želimo pronaći ??
koji jednostavno daje OCR0A = 60, također u našem Arduino kodu.
TIMER1 se koristi za nosivi val audio signala, i neću ulaziti u toliko detalja o tome.
Dakle, to je bila kratka teorija koncepta ADC -a za PWM s Arduinom.
Korak 3: Shematski prikaz
Spojite sve komponente kako je prikazano na shemi. Dakle, ovdje imate dvije mogućnosti:-
1. Spojite zvučnik (spojen s 5 V)
2. Spojite povratni transformator (spojen s 12V)
Probao sam oboje. I oboje rade prilično dobro.
*VAŽNO**VAŽNO ** VAŽNO ** VAŽNO ** VAŽNO*Moramo koristiti pojačani audio signal iz pojačala ili kruga pojačala s vršnim naponom (maksimalni napon) od 5V
Odricanje:-
*Preporučujem korištenje Flyback transformatora s oprezom jer može biti opasan jer proizvodi visoke napone. I neću biti odgovoran za bilo kakvu štetu.*
Korak 4: Završni test
Zato prenesite zadani kôd na svoj Arduino i povežite pojačani signal na pin A0.
I ne zaboravite spojiti sve uzemljene igle na zajedničko uzemljenje.
I samo uživajte slušajući glazbu.