Innehållsförteckning:

Spela låtar med Arduino Använda ADC till PWM på Flyback Transformer eller högtalare: 4 steg
Spela låtar med Arduino Använda ADC till PWM på Flyback Transformer eller högtalare: 4 steg

Video: Spela låtar med Arduino Använda ADC till PWM på Flyback Transformer eller högtalare: 4 steg

Video: Spela låtar med Arduino Använda ADC till PWM på Flyback Transformer eller högtalare: 4 steg
Video: PWM DC Motor control with Arduino and L298N Module with library - Robojax 2024, November
Anonim
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare
Spela låtar med Arduino Använd ADC till PWM på Flyback Transformer eller högtalare

Hej grabbar, Detta är den andra delen av min andra instruerbara (det var mycket svårt). I grund och botten har jag i detta projekt använt ADC och TIMERS på min Arduino för att konvertera ljudsignal till en PWM -signal.

Detta är mycket lättare än min tidigare Instructable, Här är länken till min första Instructable om du vill se. länk

För att förstå teorin om ljudsignal, bithastighet, bitdjup, samplingshastighet, kan du läsa teorin i min senaste handledning om Instructable. Länken är ovan.

Steg 1: Saker vi behöver för detta projekt (krav)

1. Arduino Board (vi kan använda vilken styrelse som helst (328, 2560) dvs Mega, Uno, Mini, etc men med specifika olika stift)

2. PC med Arduino Studio.

3. Brödbräda eller Perfboard

4. Anslutning av ledningar

5. TC4420 (Mosfet -drivrutin eller sådant)

6. Ström Mosfet (N- eller P-kanal, vänligen koppla sedan därefter) (jag har använt N-kanal)

7. Högtalare eller Flyback Transformer (Ja du läste rätt !!)

8. Lämplig strömförsörjning (0-12V) (jag har använt min egen ATX-strömförsörjning)

9. Kylfläns (jag har räddat från min gamla dator).

10. En förstärkare (normal musikförstärkare) eller förstärkarkrets.

Steg 2: Teori om ADC till PWM

Teori om ADC till PWM
Teori om ADC till PWM
Teori om ADC till PWM
Teori om ADC till PWM

Så i det här projektet har jag använt den inbyggda ADC av Arduino för att göra sampling av data från en ljudsignal.

ADC (Analog-To-Digital Converter) som namnet definierar, konverterar ADC den analoga signalen till digitala samplingar. Och för Arduino med maximalt 10-bitars djup. Men för detta projekt använder vi 8-bitars provtagning.

När vi använder ADC för Arduino måste vi tänka på ADC_reference Voltage.

Arduino Uno erbjuder 1.1V, 5V (Intern referens, som kan ställas in med kod) eller en extern referens (som vi måste applicera externt på AREF -stift).

Enligt min erfarenhet bör minst 2,0V användas som referensspänning för att få ett bra resultat från ADC. Eftersom 1.1V inte gick bra åtminstone för mig. (Personlig erfarenhet)

*VIKTIGT**VIKTIGT ** VIKTIGT ** VIKTIGT ** VIKTIGT*

Vi måste använda en förstärkt ljudsignal från en förstärkare eller en förstärkarkrets med en spets (max. Spänning) på 5V

Eftersom jag ställde in den interna spänningsreferensen på 5V för vårt projekt. Och jag använder en förstärkt signal med en vanlig förstärkare (musikförstärkare), som mestadels är tillgänglig i vårt hushåll eller så kan du bygga en själv.

Så nu är huvuddelen. Samplingsfrekvens, vilket är hur mycket prover vår ADC tar per sekund, mer är konverteringsfrekvensen, bättre blir utgångsresultatet, mer liknande blir utgångsvåg jämfört med ingången.

Så, vi kommer att använda en samplingshastighet på 33,33Khz i detta projekt, genom att ställa in ADC -klockan på 500Khz. För att förstå hur det är så måste vi se ADC -tidssidan i databladet för Atmega (328p) -chipet.

Vi kan se det, vi behöver 13,5 ADC -klockcykler för att slutföra ett prov med automatisk provtagning. Med en frekvens på 500Khz betyder det 1/500Khz = 2uS för en ADC -cykel, vilket innebär att 13,5*2uS = 27uS behövs för att slutföra ett prov när automatisk provtagning används. Genom att ge 3uS mer till mikrokontrollern (för säker sida), gör totalt 30uS totalt för ett prov.

Så 1 prov vid 30uS betyder 1/30uS = 33,33 KSamples/S.

För att ställa in samplingshastigheten, som är beroende av TIMER0 för Arduino, eftersom ADC automatisk samplingsutlösare är beroende av den i vårt fall, som du också kan se i koden och databladet, har vi gjort värdet av OCR0A = 60 (Varför så ???)

För enligt formeln i databladet.

frekvens (eller här provhastighet) = Arduino/Prescalers klockfrekvens*Värdet av OCR0A (i vårt fall)

Frekvens eller samplingsfrekvens vi vill ha = 33,33KHz

Klockfrekvens = 16MHz

Förkalkningsvärde = 8 (i vårt fall)

Värdet på OCR0A = vi vill hitta ??

som helt enkelt ger OCR0A = 60, även i vår Arduino -kod.

TIMER1 används för bärvåg av en ljudsignal, och jag kommer inte att gå in på så många detaljer om det.

Så det var den korta teorin om konceptet ADC till PWM med Arduino.

Steg 3: Schematisk

Schematisk
Schematisk

Anslut alla komponenter som visas i schemat. Så du har här två alternativ:-

1. Anslut en högtalare (ansluten med 5V)

2. Anslut en Flyback -transformator (ansluten med 12V)

Jag har provat båda. Och båda fungerar ganska bra.

*VIKTIGT**VIKTIGT ** VIKTIGT ** VIKTIGT ** VIKTIGT*Vi måste använda en förstärkt ljudsignal från en förstärkare eller en förstärkarkrets med en spets (max. Spänning) på 5V

Varning:-

*Jag rekommenderar att du använder Flyback Transformer med försiktighet eftersom det kan vara farligt eftersom det producerar högspänning. Och jag ansvarar inte för skador.*

Steg 4: Slutprov

Så ladda upp den angivna koden till din Arduino och anslut den förstärkta signalen till A0 -stiftet.

Och glöm inte att ansluta alla markstift till en gemensam mark.

Och bara njut av att lyssna på musik.

Rekommenderad: