Cuprins:
- Pasul 1: Lucruri de care avem nevoie pentru acest proiect (Cerințe)
- Pasul 2: Teoria ADC la PWM
- Pasul 3: Schematic
- Pasul 4: Test final
Video: Redați melodii cu Arduino folosind ADC către PWM pe Flyback Transformer sau difuzor: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
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
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
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:
Redați melodii (MP3) cu Arduino folosind PWM pe difuzor sau Flyback Transformer: 6 pași (cu imagini)
Redați melodii (MP3) Cu Arduino folosind PWM pe difuzor sau Flyback Transformer: Bună băieți, acesta este primul meu instructable, sper să vă placă !! Practic, în acest proiect am folosit comunicarea în serie între Arduino și laptopul meu, să transmit date muzicale de pe laptopul meu către Arduino. Și folosind Arduino TIMERS t
Redați CD-uri fără CD Player, folosind AI și YouTube: 10 pași (cu imagini)
Redați CD-uri fără CD Player, folosind AI și YouTube: doriți să redați CD-urile dvs., dar nu mai aveți CD player? Nu ați avut timp să vă rupeți CD-urile? Le-ați rupt, dar fișierele nu sunt disponibile când este necesar? Nicio problemă. Lasă AI (inteligența artificială) să-ți identifice CD-ul și YouTube să-l redea! Am scris o aplicație Android făcând
Redați Bluetooth pe Sonos folosind Raspberry Pi: 25 de pași
Redați Bluetooth pe Sonos folosind Raspberry Pi: Am scris anterior un instructiv care descrie cum să adăugați o linie auxiliară sau analogică la Sonos folosind un Raspberry Pi. Un cititor a întrebat dacă va fi posibil să transmiteți în flux audio Bluetooth de pe telefonul său către Sonos. Este ușor să faceți acest lucru folosind un dongle bluetooth
Redați melodii folosind motorul pas cu pas !!: 11 pași (cu imagini)
Redați melodii folosind motorul pas cu pas !!: Acest proiect vizează proiectarea unei interfețe dinamice simple, care să permită interacțiunea cu un motor pas cu pas în două moduri diferite. Prima interfață va controla direcția și viteza motorului pas cu pas prin utilizarea unui GUI simplu, care h
Cum să obțineți melodii sau alte lucruri de pe un DVD ca MP3: 4 pași
Cum să obțineți melodii sau alte lucruri de pe un DVD ca MP3: Dacă aveți un DualDisc cu melodii pe care doriți să le ascultați pe un iPod sau un DVD normal cu poate o piesă de comentariu pe care doriți să o ascultați un Ipod, citiți restul pentru a face asta. Obiecte necesare: computer, mâini, creier, DVD, iPod