Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Zdravo družba, To je drugi del mojega drugega poučevanja (kar je bilo zelo težko). V bistvu sem v tem projektu uporabil ADC in TIMERS na svojem Arduinu za pretvorbo zvočnega signala v signal PWM.
To je veliko lažje kot moj prejšnji Instructable. Tukaj je povezava mojega prvega Instructable, če želite videti. povezava
Če želite razumeti teorijo zvočnega signala, bitne hitrosti, bitne globine, hitrosti vzorčenja, lahko teorijo preberete v moji zadnji vadnici na strani Instructable. Povezava je zgoraj.
1. korak: Stvari, ki jih potrebujemo za ta projekt (zahteve)
1. Arduino plošča (lahko uporabimo katero koli ploščo (328, 2560), tj. Mega, Uno, Mini itd., Vendar s posebnimi različnimi zatiči)
2. Računalnik z Arduino Studio.
3. Breadboard ali Perfboard
4. Povezovanje žic
5. TC4420 (voznik Mosfet ali kaj podobnega)
6. Napajanje Mosfet (N ali P kanal, prosim ožičite potem) (uporabil sem N-kanal)
7. Zvočnik ali povratni transformator (ja, prav ste prebrali !!)
8. Ustrezen napajalnik (0-12V) (uporabil sem svoj napajalnik ATX)
9. Hladilnik (rešil sem ga s starega računalnika).
10. Ojačevalnik (običajni glasbeni ojačevalnik) ali vezje ojačevalnika.
2. korak: Teorija ADC na PWM
Tako sem v tem projektu uporabil vgrajen ADC iz Arduina za vzorčenje podatkov avdio signala.
ADC (analogno-digitalni pretvornik), kot določa ime, ADC pretvori analogni signal v digitalne vzorce. In za Arduino z največ 10-bitno globino. Toda za ta projekt bomo uporabili 8-bitno vzorčenje.
Med uporabo ADC -ja Arduina moramo upoštevati ADC_referenčno napetost.
Arduino Uno ponuja 1,1 V, 5 V (notranja referenca, ki jo je mogoče nastaviti v kodi) ali zunanjo referenco (ki jo moramo uporabiti zunaj za pin AREF).
Po mojih izkušnjah je treba za referenčno napetost uporabiti najmanj 2,0 V, da dobimo dober rezultat iz ADC -ja. Ker 1.1V vsaj zame ni šlo dobro. (Osebna izkušnja)
*POMEMBNO**POMEMBNO ** POMEMBNO ** POMEMBNO ** POMEMBNO*
Uporabiti moramo ojačan zvočni signal ojačevalnika ali ojačevalnega vezja z največjo napetostjo (največja napetost) 5V
Ker sem za naš projekt nastavil interno referenčno napetost 5V. Uporabljam ojačan signal z običajnim ojačevalnikom (glasbeni ojačevalnik), ki je večinoma na voljo v našem gospodinjstvu ali pa si ga sami zgradite.
Torej zdaj glavni del. Hitrost vzorčenja, to je, koliko vzorcev vzame naš ADC na sekundo, večja je stopnja pretvorbe, boljši bo izhodni rezultat, bolj podoben bo izhodni val v primerjavi z vhodnim.
Torej, v tem projektu bomo uporabili frekvenco vzorčenja 33,33Khz, tako da nastavimo uro ADC na 500Khz. Da bi razumeli, kako je to, moramo videti časovno stran ADC v podatkovnem listu čipa Atmega (328p).
Vidimo lahko, da za dokončanje enega vzorca z avtomatskim vzorčenjem potrebujemo 13,5 cikla ure ADC. S frekvenco 500Khz to pomeni 1/500Khz = 2uS za en cikel ADC, kar pomeni, da je za dokončanje vzorca pri uporabi samodejnega vzorčenja potrebno 13,5*2uS = 27uS. Če mikrokontrolerju daste 3uS več (za varno stran), skupaj ustvarite 30uS za en vzorec.
Torej 1 vzorec pri 30uS pomeni 1/30uS = 33,33 KS vzorcev/S.
Če želite nastaviti hitrost vzorčenja, ki je odvisna od TIMER0 v Arduinu, ker je sprožilec samodejnega vzorčenja ADC odvisen od tega v našem primeru, kot lahko vidite tudi v kodi in podatkovnem listu, smo naredili vrednost OCR0A = 60 (Zakaj tako ???)
Ker po formuli v podatkovnem listu.
frekvenca (ali tukaj Sample Rate) = Taktna frekvenca Arduina/Prescalerja*Vrednost OCR0A (v našem primeru)
Želena frekvenca ali frekvenca vzorčenja = 33,33KHz
Taktna frekvenca = 16MHz
Vrednost predkalerja = 8 (v našem primeru)
Vrednost OCR0A = želimo najti ??
ki preprosto daje OCR0A = 60, tudi v naši kodi Arduino.
TIMER1 se uporablja za nosilec zvočnega signala, o tem pa ne bom govoril toliko podrobnosti.
Torej, to je bila kratka teorija koncepta ADC za PWM z Arduinom.
3. korak: Shema
Povežite vse komponente, kot je prikazano na shemi. Tu imate torej dve možnosti:-
1. Priključite zvočnik (povezan s 5V)
2. Priključite povratni transformator (povezan z 12V)
Poskusil sem oboje. In oba delujeta zelo dobro.
*POMEMBNO**POMEMBNO ** POMEMBNO ** POMEMBNO ** POMEMBNO*Uporabiti moramo ojačan zvočni signal iz ojačevalnika ali ojačevalnega vezja z največjo napetostjo (največja napetost) 5V
Zavrnitev odgovornosti:-
*Priporočam previdnostno uporabo transformatorja, ker je lahko nevaren, ker proizvaja visoke napetosti. Ne bom odgovoren za nobeno škodo.*
4. korak: Končni preizkus
Zato naložite podano kodo na svoj Arduino in povežite ojačeni signal na pin A0.
In ne pozabite priključiti vseh ozemljitvenih zatičev na skupno ozemljitev.
In samo uživajte ob poslušanju glasbe.