Esitage lugusid Arduino abil, kasutades ADC -PWM -i Flyback -trafol või kõlaril: 4 sammu
Esitage lugusid Arduino abil, kasutades ADC -PWM -i Flyback -trafol või kõlaril: 4 sammu
Anonim
Esitage lugusid Arduino abil, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduino abil, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduinoga, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduinoga, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduinoga, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduinoga, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduinoga, kasutades ADC -PWM -i Flyback -trafol või kõlaris
Esitage lugusid Arduinoga, kasutades ADC -PWM -i Flyback -trafol või kõlaris

Tere kutid, See on minu teise juhendatava (see oli palju raske) teine osa. Põhimõtteliselt olen selles projektis kasutanud oma Arduino ADC -d ja taimerit helisignaali muutmiseks PWM -signaaliks.

See on palju lihtsam kui minu eelmine Instructable, siin on minu esimese Instructable'i link, kui soovite näha. link

Helisignaali teooria, bitikiiruse, bittide sügavuse, diskreetimissageduse mõistmiseks saate teooria lugeda minu viimasest juhendist Instructable kohta. Link on ülal.

Samm: asjad, mida me selle projekti jaoks vajame (nõuded)

1. Arduino juhatus (saame kasutada mis tahes tahvlit (328, 2560), st Mega, Uno, Mini jne, kuid konkreetsete erinevate tihvtidega)

2. PC koos Arduino Studioga.

3. Leivalaud või Perfboard

4. Juhtmete ühendamine

5. TC4420 (Mosfeti draiver või midagi sellist)

6. Toide Mosfet (N või P kanal, palun juhe siis vastavalt) (olen kasutanud N-kanalit)

7. Kõlar või Flyback -trafo (jah, lugesite õigesti!)

8. Sobiv toiteallikas (0-12V) (olen kasutanud oma ATX toiteallikat)

9. Jahutusradiaator (olen päästnud oma vanast arvutist).

10. Võimendi (tavaline muusikavõimendi) või võimendusahel.

2. samm: ADC teooria PWM -ile

ADC teooria PWM -ile
ADC teooria PWM -ile
ADC teooria PWM -ile
ADC teooria PWM -ile

Nii et selles projektis olen helisignaali andmete proovivõtmiseks kasutanud Arduino ehitatud ADC -d.

ADC (analoog-digitaalmuundur), nagu nimi määratleb, teisendab ADC analoogsignaali digitaalseteks näidisteks. Ja Arduino jaoks maksimaalselt 10-bitise sügavusega. Kuid selle projekti jaoks kasutame 8-bitist proovivõtmist.

Arduino ADC kasutamise ajal peame meeles pidama ADC_reference Voltage.

Arduino Uno pakub 1,1 V, 5 V (sisemine viide, mille saab määrata koodi abil) või välise viite (mida peame AREF -i tihvti jaoks väliselt rakendama).

Minu kogemuste kohaselt tuleks ADC -lt hea tulemuse saamiseks kasutada võrdluspingena vähemalt 2,0 V. Kuna 1.1V ei läinud vähemalt minu jaoks hästi. (Isiklik kogemus)

*OLULINE**TÄHTIS ** TÄHTIS ** TÄHTIS ** TÄHTIS*

Peame kasutama võimendatud helisignaali võimendist või võimendusahelast, mille tipppinge (max. Pinge) on 5 V

Kuna ma seadsin meie projekti jaoks sisemise pinge võrdlusväärtuse 5V. Ja ma kasutan võimendatud signaali, kasutades tavalist võimendit (muusikavõimendit), mis on enamasti meie majapidamises saadaval või saate selle endale ise ehitada.

Nii et nüüd peamine osa. Proovivõtu määr, mis on see, kui palju proove meie ADC võtab sekundis, seda suurem on teisenduskurss, seda parem on väljundtulemus, sarnasem on väljundlaine võrreldes sisendiga.

Niisiis kasutame selles projektis proovivõtu sagedust 33,33 kHz, seades ADC kella 500 kHz. Et mõista, kuidas see nii on, peame nägema ADC ajastuslehte Atmega (328p) kiibi andmelehel.

Näeme, et ühe proovi automaatse proovivõtmisega lõpuleviimiseks vajame 13,5 ADC kella tsüklit. Sagedusega 500Khz tähendab see ühe ADC tsükli jaoks 1/500Khz = 2uS, mis tähendab, et automaatse proovivõtmise korral on proovi lõpuleviimiseks vaja 13,5*2uS = 27uS. Andes mikrokontrollerile 3uS rohkem (ohutuse tagamiseks), tehes ühe proovi jaoks kokku 30uS.

Nii et 1 proov 30uS juures tähendab 1/30uS = 33,33 KSamples/S.

Proovivõtu määra määramiseks, mis sõltub Arduino TIMER0 -st, kuna ADC automaatne proovivõtmise päästik sõltub sellest meie puhul, nagu näete ka koodist ja andmelehelt, oleme teinud väärtuseks OCR0A = 60 (Miks nii ???)

Kuna andmelehel antud valemi järgi.

sagedus (või siin proovi määr) = Arduino/Prescaler kella sagedus*OCR0A väärtus (meie puhul)

Soovitav sagedus või proovivõtu sagedus = 33,33 KHz

Kella sagedus = 16 MHz

Eelkvaliteedi väärtus = 8 (meie puhul)

OCR0A väärtus = tahame leida ??

mis annab lihtsalt OCR0A = 60, ka meie Arduino koodis.

TIMER1 kasutatakse helisignaali kandelaineks ja ma ei hakka sellest nii palju üksikasju kirjeldama.

Niisiis, see oli lühike teooria ADC kontseptsioonist PWM -ile koos Arduinoga.

3. samm: skemaatiline

Skeem
Skeem

Ühendage kõik komponendid vastavalt skeemile. Nii et teil on siin kaks võimalust:-

1. Ühendage kõlar (ühendatud 5V)

2. Ühendage Flyback -trafo (ühendatud 12V)

Olen mõlemaid proovinud. Ja mõlemad töötavad päris hästi.

*TÄHTIS**TÄHTIS ** TÄHTIS ** TÄHTIS ** TÄHTIS*Peame kasutama võimendatud helisignaali võimendist või võimendusahelast, mille tipppinge (max. Pinge) on 5 V

Vastutusest loobumine:-

*Soovitan kasutada Flyback Transformerit ettevaatusabinõuga, kuna see võib olla ohtlik, kuna see tekitab kõrgepingeid. Ja ma ei vastuta kahjude eest.*

4. samm: lõplik test

Nii et laadige antud kood oma Arduinole üles ja ühendage võimendatud signaal A0 tihvtiga.

Ja ärge unustage ühendada kõik maandusnõelad ühise maaga.

Ja lihtsalt nautige muusika kuulamist.