Cuprins:

Redați melodii cu Arduino folosind ADC către PWM pe Flyback Transformer sau difuzor: 4 pași
Redați melodii cu Arduino folosind ADC către PWM pe Flyback Transformer sau difuzor: 4 pași

Video: Redați melodii cu Arduino folosind ADC către PWM pe Flyback Transformer sau difuzor: 4 pași

Video: Redați melodii cu Arduino folosind ADC către PWM pe Flyback Transformer sau difuzor: 4 pași
Video: VTech CS6529-4B 4 Handset Cordless Answering System Telephone 2024, Noiembrie
Anonim
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor
Redați melodii cu Arduino folosind ADC la PWM pe Flyback Transformer sau difuzor

Buna baieti, Aceasta este a doua parte a altui meu instructable (care a fost mult dificil), Practic, în acest proiect, am folosit ADC și TIMERS pe Arduino pentru a converti semnalul audio într-un semnal PWM.

Acest lucru este mult mai ușor decât anteriorul meu instructabil, aici este linkul primului meu instructabil dacă doriți să vedeți. legătură

Pentru a înțelege teoria semnalului audio, rata de biți, adâncimea de biți, rata de eșantionare, puteți citi teoria în ultimul meu tutorial despre instructabil. Linkul este deasupra.

Pasul 1: Lucruri de care avem nevoie pentru acest proiect (Cerințe)

1. Placa Arduino (putem folosi orice placă (328, 2560), adică Mega, Uno, Mini etc., dar cu pini specifici diferiți)

2. PC cu Arduino Studio.

3. Panou de bord sau Perfboard

4. Conectarea firelor

5. TC4420 (driver Mosfet sau așa ceva)

6. Power Mosfet (canal N sau P, vă rugăm să conectați apoi corespunzător) (am folosit canalul N)

7. Difuzor sau Transformator Flyback (Da l-ați citit bine !!)

8. Alimentare adecvată (0-12V) (mi-am folosit propria sursă de alimentare ATX)

9. Radiator (am recuperat de pe vechiul meu PC).

10. Un amplificator (amplificator de muzică normal) sau un circuit de amplificare.

Pasul 2: Teoria ADC la PWM

Teoria ADC la PWM
Teoria ADC la PWM
Teoria ADC la PWM
Teoria ADC la PWM

Deci, în acest proiect, am folosit în ADC-ul Arduino construit pentru a face eșantionarea de date a unui semnal audio.

ADC (convertor analog-digital) după cum definește numele, ADC convertește semnalul analogic în probe digitale. Și pentru Arduino cu o adâncime maximă de 10 biți. Dar pentru acest proiect, vom folosi eșantionarea pe 8 biți.

În timp ce folosim ADC-ul Arduino, trebuie să ținem cont de tensiunea ADC_reference.

Arduino Uno oferă 1.1V, 5V (referință internă, care poate fi setată definind în cod) sau o referință externă (pe care trebuie să o aplicăm extern pinului AREF).

Conform experienței mele, un minim de 2.0V ar trebui folosit ca tensiune de referință pentru a obține un rezultat bun de la ADC. Deoarece 1.1V nu a mers bine cel puțin pentru mine. (Experienta personala)

* IMPORTANT * * IMPORTANT ** IMPORTANT ** IMPORTANT ** IMPORTANT *

Trebuie să folosim un semnal audio amplificat de la un amplificator sau un circuit de amplificare cu o tensiune de vârf (tensiune maximă) de 5V

Pentru că am stabilit referința de tensiune internă de 5V, pentru proiectul nostru. Și folosesc un semnal amplificat folosind un amplificator normal (amplificator muzical), care este disponibil în cea mai mare parte în gospodăria noastră sau îl puteți construi pentru dvs.

Deci, acum partea principală. Rata de eșantionare, care este cât de multe eșantioane ia ADC-ul nostru pe secundă, este mai mare rata de conversie, rezultatul de ieșire va fi mai bun, valul de ieșire va fi mai similar în comparație cu intrarea.

Deci, vom folosi o rată de eșantionare de 33,33 KHz în acest proiect, prin setarea ceasului ADC la 500 KHz. Pentru a înțelege cum este, trebuie să vedem pagina de sincronizare ADC în foaia tehnică a cipului Atmega (328p).

Putem vedea asta, avem nevoie de 13,5 cicluri de ceas ADC pentru a finaliza un eșantion cu eșantionare automată. Cu o frecvență de 500 Khz, înseamnă 1/500 Khz = 2uS pentru un ciclu ADC, ceea ce înseamnă că sunt necesare 13,5 * 2uS = 27uS pentru a completa o probă atunci când se utilizează eșantionarea automată. Oferind 3uS mai mult microcontrolerului (pentru partea sigură), realizând un total de 30uS total pentru o probă.

Deci, 1 eșantion la 30uS înseamnă 1 / 30uS = 33,33 KSamples / S.

Pentru a seta rata de eșantionare, care depinde de TIMER0 din Arduino, deoarece declanșatorul de eșantionare automată ADC este dependent de cel din cazul nostru, așa cum puteți vedea și în cod și foaia de date, am făcut valoarea OCR0A = 60 (De ce așa? ???)

Pentru că conform formulei date în foaia tehnică.

frecvență (sau aici Sample Rate) = Frecvența ceasului Arduino / Prescaler * Valoarea OCR0A (în cazul nostru)

Frecvența sau rata de eșantionare dorită = 33,33KHz

Frecvența ceasului = 16 MHz

Valoarea prescalatorului = 8 (în cazul nostru)

Valoarea OCR0A = vrem să găsim ??

care oferă pur și simplu OCR0A = 60, de asemenea, în codul nostru Arduino.

TIMER1 este utilizat pentru valul purtător al unui semnal audio și nu voi intra în atâtea detalii despre asta.

Deci, aceasta a fost teoria scurtă a conceptului de ADC la PWM cu Arduino.

Pasul 3: Schematic

Schematic
Schematic

Conectați toate componentele așa cum se arată în schemă. Deci aveți aici două opțiuni: -

1. Conectați un difuzor (conectat cu 5V)

2. Conectați un transformator Flyback (conectat cu 12V)

Le-am încercat pe amândouă. Și ambele funcționează destul de bine.

* IMPORTANT * * IMPORTANT ** IMPORTANT ** IMPORTANT ** IMPORTANT * Trebuie să folosim un semnal audio amplificat de la un amplificator sau un circuit amplificator cu o tensiune de vârf (tensiune maximă) de 5V

Declinare de responsabilitate: -

* Vă recomandăm să folosiți Flyback Transformer cu precauție, deoarece poate fi periculos deoarece produce tensiuni ridicate. Și nu voi fi răspunzător pentru niciun fel de daune. *

Pasul 4: Test final

Deci, încărcați codul dat pe Arduino și conectați semnalul amplificat la pinul A0.

Și nu uitați să conectați toți pinii de masă la o masă comună.

Și doar Bucură-te de ascultarea muzicii.

Recomandat: