Innholdsfortegnelse:

Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler: 4 trinn
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler: 4 trinn

Video: Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler: 4 trinn

Video: Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler: 4 trinn
Video: Reading PWM Values from an RC Receiver using Arduino 2024, November
Anonim
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler
Spill sanger med Arduino ved å bruke ADC til PWM på Flyback Transformer eller høyttaler

Hei folkens, Dette er den andre delen av min andre instruerbare (det var mye vanskelig). I hovedsak har jeg i dette prosjektet brukt ADC og TIMERS på min Arduino for å konvertere lydsignal til et PWM -signal.

Dette er mye lettere enn min forrige Instructable. Her er lenken til min første Instructable hvis du vil se. lenke

For å forstå teorien om lydsignal, bitrate, bitdybde, samplingsfrekvens, kan du lese teorien i min siste opplæring om Instructable. Lenken er over.

Trinn 1: Ting vi trenger for dette prosjektet (krav)

1. Arduino Board (vi kan bruke et hvilket som helst brett (328, 2560) dvs. Mega, Uno, Mini, etc, men med spesifikke forskjellige pins)

2. PC med Arduino Studio.

3. Brødbrett eller Perfboard

4. Koble til ledninger

5. TC4420 (Mosfet -driver eller slikt)

6. Strøm Mosfet (N eller P kanal, vennligst koble deretter deretter) (jeg har brukt N-kanal)

7. Høyttaler eller Flyback Transformer (Ja, du leste det riktig!)

8. Egnet strømforsyning (0-12V) (jeg har brukt min egen ATX strømforsyning)

9. Varmeavleder (jeg har berget fra min gamle PC).

10. En forsterker (vanlig musikkforsterker) eller forsterkerkrets.

Trinn 2: Teori om ADC til PWM

Teori om ADC til PWM
Teori om ADC til PWM
Teori om ADC til PWM
Teori om ADC til PWM

Så i dette prosjektet har jeg brukt i den innebygde ADC av Arduino til å ta datasampling av et lydsignal.

ADC (Analog-To-Digital Converter) som navnet definerer, konverterer ADC det analoge signalet til digitale prøver. Og for Arduino med maksimalt 10-biters dybde. Men for dette prosjektet bruker vi 8-biters prøvetaking.

Når du bruker ADC til Arduino, må vi huske på ADC_reference Voltage.

Arduino Uno tilbyr 1.1V, 5V (intern referanse, som kan defineres i kode) eller en ekstern referanse (som vi må bruke eksternt på AREF -pinne).

Etter min erfaring bør minimum 2.0V brukes som referansespenning for å få et godt resultat fra ADC. Siden 1.1V ikke gikk bra i hvert fall for meg. (Personlig erfaring)

*VIKTIG**VIKTIG ** VIKTIG ** VIKTIG ** VIKTIG*

Vi må bruke et forsterket lydsignal fra en forsterker eller en forsterkerkrets med en toppspenning (maks. Spenning) på 5V

Fordi jeg angav den interne spenningsreferansen til 5V for prosjektet vårt. Og jeg bruker et forsterket signal ved hjelp av en vanlig forsterker (musikkforsterker), som for det meste er tilgjengelig i husholdningen vår, eller du kan bygge en selv.

Så nå er hoveddelen. Samplingsfrekvens, som er hvor mange prøver vår ADC tar per sekund, mer er konverteringsfrekvensen, bedre blir utgangsresultatet, mer lignende blir utgangsbølgen sammenlignet med inngangen.

Så, vi vil bruke en samplingsfrekvens på 33,33Khz i dette prosjektet, ved å sette ADC -klokken på 500Khz. For å forstå hvordan det er, må vi se ADC -tidssiden i databladet til Atmega (328p) -brikken.

Vi kan se at vi trenger 13,5 ADC klokkesykluser for å fullføre en prøve med automatisk prøvetaking. Med en frekvens på 500Khz betyr det 1/500Khz = 2uS for en ADC -syklus, noe som betyr at 13,5*2uS = 27uS er nødvendig for å fullføre en prøve når automatisk prøvetaking brukes. Ved å gi 3uS mer til mikrokontrolleren (for sikker side), gjør du totalt 30uS totalt for en prøve.

Så 1 Prøve ved 30uS betyr 1/30uS = 33,33 KSamples/S.

For å angi samplingshastigheten, som er avhengig av TIMER0 for Arduino, fordi ADC auto sampling trigger er avhengig av den i vårt tilfelle, som du også kan se i koden og databladet, har vi laget verdien til OCR0A = 60 (hvorfor det ???)

Fordi i henhold til formelen gitt i databladet.

frekvens (eller her Prøvehastighet) = Klokkefrekvens for Arduino/Prescaler*Verdi av OCR0A (i vårt tilfelle)

Frekvens eller prøvefrekvens vi ønsker = 33,33KHz

Klokkefrekvens = 16MHz

Forkalkingsverdi = 8 (i vårt tilfelle)

Verdi av OCR0A = vi ønsker å finne ??

som ganske enkelt gir OCR0A = 60, også i vår Arduino -kode.

TIMER1 brukes til bærerbølge av et lydsignal, og jeg skal ikke gå inn på så mange detaljer om det.

Så det var den korte teorien om konseptet ADC til PWM med Arduino.

Trinn 3: Skjematisk

Skjematisk
Skjematisk

Koble til alle komponentene som vist i skjemaet. Så du har her to alternativer:-

1. Koble til en høyttaler (koblet til 5V)

2. Koble til en Flyback Transformer (koblet til 12V)

Jeg har prøvd begge deler. Og begge fungerer ganske bra.

*VIKTIG**VIKTIG ** VIKTIG ** VIKTIG ** VIKTIG*Vi må bruke et forsterket lydsignal fra en forsterker eller en forsterkerkrets med en toppspenning (maks. Spenning) på 5V

Ansvarsfraskrivelse:-

*Jeg anbefaler å bruke Flyback Transformer med forsiktighet, da det kan være farlig fordi det produserer høyspenninger. Og jeg er ikke ansvarlig for noen skade.*

Trinn 4: Sluttest

Så last opp den oppgitte koden til din Arduino, og koble det forsterkede signalet til A0 -pinnen.

Og ikke glem å koble alle jordnålene til en felles bakke.

Og bare nyt å lytte til musikk.

Anbefalt: