Tartalomjegyzék:
- 1. lépés: A projekthez szükséges dolgok (követelmények)
- 2. lépés: Az ADC elmélete a PWM -hez
- 3. lépés: Vázlatos
- 4. lépés: Végső teszt
Videó: Zeneszámok lejátszása Arduino segítségével az ADC - PWM használatával a Flyback Transformeren vagy hangszórón: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Helló srácok, Ez a másik utasítása a második részemnek (ez nagyon nehéz volt). Alapvetően ebben a projektben az Arduino -n lévő ADC -t és időzítőt használtam az audiojel PWM -jellé alakítására.
Ez sokkal könnyebb, mint a korábbi Instructable -m, itt van az első Instructable linkje, ha látni szeretné. link
Az audiojel, a bitráta, a bitmélység, a mintavételi arány elméletének megértéséhez olvassa el az elméletet az Instructable -ról szóló utolsó oktatóanyagomban. A link fent.
1. lépés: A projekthez szükséges dolgok (követelmények)
1. Arduino tábla (bármilyen táblát (328, 2560) használhatunk, azaz Mega, Uno, Mini stb., De különböző tűkkel)
2. PC Arduino Stúdióval.
3. Breadboard vagy Perfboard
4. Vezetékek csatlakoztatása
5. TC4420 (Mosfet driver vagy ilyesmi)
6. Tápellátás Mosfet (N vagy P csatorna, kérjük, kösse be a kábelt ennek megfelelően) (N-csatornát használtam)
7. Hangszóró vagy Flyback Transformer (Igen, jól olvasta !!)
8. Megfelelő tápegység (0-12V) (saját ATX tápegységet használtam)
9. Hűtőborda (a régi PC -ről mentettem ki).
10. Erősítő (normál zenei erősítő) vagy erősítő áramkör.
2. lépés: Az ADC elmélete a PWM -hez
Tehát ebben a projektben az Arduino beépített ADC -jét használtam az audiojel adatmintavételéhez.
Az ADC (analóg-digitális konverter), ahogy a név is meghatározza, az ADC az analóg jelet digitális mintává alakítja. És az Arduino számára, maximum 10 bites mélységgel. Ehhez a projekthez azonban 8 bites mintavételt fogunk használni.
Az Arduino ADC használata közben szem előtt kell tartanunk az ADC_reference Voltage -t.
Az Arduino Uno 1.1V, 5V (belső referencia, amelyet kódban lehet megadni) vagy külső referenciát kínál (amelyet külsőleg kell alkalmaznunk az AREF pin -re).
Tapasztalataim szerint minimum 2,0 V -ot kell használni referenciafeszültségként, hogy jó eredményt érjen el az ADC -ből. Mivel az 1.1V legalábbis nem esett jól nekem. (Személyes tapasztalat)
*FONTOS**FONTOS ** FONTOS ** FONTOS ** FONTOS*
5V -os csúcsfeszültségű (max. Feszültségű) erősítőből vagy erősítő áramkörből származó erősített hangjelet kell használnunk
Mivel a projektünkhöz 5 V belső feszültségreferenciát állítottam be. És én egy erősített jelet használok egy normál erősítővel (zenei erősítő), amely többnyire a háztartásunkban kapható, vagy építhet egyet magának.
Tehát most a fő rész. Mintavételi arány, azaz mennyi mintát vesz az ADC másodpercenként, annál nagyobb az átváltási arány, jobb lesz a kimeneti eredmény, több hasonló lesz a kimeneti hullám a bemenethez képest.
Tehát ebben a projektben 33,33 Khz mintavételi gyakoriságot fogunk használni, ha az ADC órát 500 Khz -re állítjuk. Ahhoz, hogy megértsük, hogyan van ez, meg kell látnunk az ADC időzítési oldalt az Atmega (328p) chip adatlapján.
Láthatjuk, hogy egy minta automatikus mintavételezéshez 13,5 ADC órajelre van szükségünk. 500Khz frekvenciával 1/500Khz = 2uS egy ADC ciklusra, ami azt jelenti, hogy 13,5*2uS = 27uS szükséges a minta befejezéséhez automatikus mintavétel esetén. Ha 3uS -t ad a mikrovezérlőnek (a biztonság kedvéért), akkor összesen 30uS -ot készít egy mintára.
Tehát 1 minta 30uS -on 1/30uS = 33,33 KSamples/S.
A mintavételi gyakoriság beállításához, amely függ az Arduino TIMER0 -tól, mivel az ADC automatikus mintavételi trigger attól függ, hogy a mi esetünkben, amint az a kódban és az adatlapon is látható, az OCR0A = 60 értéket adtuk meg (Miért ???)
Mert az adatlapon megadott képlet szerint.
frekvencia (vagy itt mintavételi arány) = Arduino/Prescaler órajel gyakorisága*OCR0A értéke (esetünkben)
A kívánt frekvencia vagy mintavételi frekvencia = 33,33 KHz
Óra frekvencia = 16MHz
Előre méretezett érték = 8 (esetünkben)
OCR0A értéke = meg akarjuk találni ??
ami egyszerűen OCR0A = 60 -at ad, szintén az Arduino kódunkban.
A TIMER1 az audió jel vivőhullámát használja, és nem részletezem ezt.
Tehát ez volt az ADC fogalmának rövid elmélete a PWM -hez Arduino -val.
3. lépés: Vázlatos
Csatlakoztassa az összes alkatrészt a vázlat szerint. Tehát itt két lehetőség közül választhat:-
1. Csatlakoztasson egy hangszórót (5V -os csatlakozóval)
2. Csatlakoztasson egy Flyback transzformátort (12V -os csatlakozóval)
Mindkettőt kipróbáltam. És mindkettő elég jól működik.
*FONTOS**FONTOS ** FONTOS ** FONTOS ** FONTOS*5 V -os csúcsfeszültségű (Max. Feszültség) erősítő vagy erősítő áramkör erősített audiojelet kell használnunk
Jogi nyilatkozat:-
*Javaslom a Flyback Transformer elővigyázatossággal történő használatát, mivel veszélyes lehet, mert magas feszültséget okoz. És nem vagyok felelős semmilyen kárért.*
4. lépés: Végső teszt
Tehát töltse fel a megadott kódot az Arduino készülékére, és csatlakoztassa az erősített jelet az A0 tűhöz.
És ne felejtse el az összes földelőcsapot egy közös földhöz csatlakoztatni.
És csak élvezze a zenehallgatást.
Ajánlott:
Irányítsa a háztartási gépeket az Alexa segítségével az ESP8266 vagy az ESP32 segítségével: 8 lépés
Irányítsa a háztartási gépeket Alexa segítségével az ESP8266 vagy ESP32 segítségével: Hé, mi újság, srácok! Akarsh itt a CETech -től. Ez a projektem segíteni fog az életed megkönnyítésében, és úgy fogsz érezni magad, mint egy király, miután irányítottad a házban lévő eszközöket, csak parancsot adva Alexának. A legfontosabb dolog e
Beszélő Arduino - MP3 lejátszása Arduino -val modul nélkül - MP3 fájl lejátszása Arduino -ból PCM használatával: 6 lépés
Beszélő Arduino | MP3 lejátszása Arduino -val modul nélkül | Mp3 fájl lejátszása az Arduino -ból PCM használatával: Ebben az utasításban megtanuljuk, hogyan kell lejátszani egy mp3 fájlt arduino -val audio modul használata nélkül, itt a PCM könyvtárat fogjuk használni az Arduino számára, amely 16 bites 8 kHz -es PCM -et játszik le
Zene lejátszása Arduino segítségével!: 5 lépés (képekkel)
Zene lejátszása Arduino -val!: Ebben az oktatóanyagban megmutatom, hogyan játszok zenét egy Arduino UNO és egy SD kártya modul segítségével. Az SPI kommunikációt fogjuk használni. Kezdjük
Audio hangfájlok lejátszása (Wav) Arduino és DAC segítségével: 9 lépés
Audio hangfájlok lejátszása (Wav) Arduino és DAC segítségével: WAV fájl lejátszása Audino SD kártyáról. Ez az Instructable megmutatja, hogyan játszható le az SdCard -on található wav fájl egy egyszerű áramkörön keresztül egy hangszóróhoz. A wav fájlnak 8 bites monónak kell lennie. Nem volt gondom 44 KHz -es fájlok lejátszásával. Miközben nem
Flash játékok letöltése és lejátszása offline vagy offline: 5 lépés
Flash játékok letöltése és lejátszása offline vagy offline: Ebben az utasításban megtanítom a flash játékok letöltését. Ez fantasztikus utazásokhoz és olyan dolgokhoz, ahol nem tud Wi-Fi-t játszani