Generering sinuskurve bruger PWM metode

M

Maverickmax

Guest
Hej Så vidt jeg forstår, at generere sinusbølge look-up tabel. Nu har jeg brug for at vide, hvordan du opretter algoritme til at bruge tabellen med PWM for at producere sinuskurve. Enhver god tutorial eller link for mig at udvikle min forståelse på dette område? Maverick Max
 
Maverick Max Den PWM periode skal være meget kortere end den sinusbølge periode. Lad os sige for eksempel PWM periode er 256 tæller, og der er 36 PWM perioder i løbet af en sinusbølge periode (hver PWM periode er 2 * pi/36 radianer eller 10 grader). Lad os sige, at ved en værdi på nul, bruger vi en PWM periode på 50%. Negativ er 0% og positiv man er 100%. For hver PWM periode, skal du bruge sinus tabellen til at bestemme, hvad din pligt cyklus skal være. For synd (0), PWM = 50%, count = 128. For synd (2 * pi/36), PWM = 59%, count = 151, for synd (2 * pi * 2 / 36), PWM = 67%, count = 171, osv. Så dit output er høj for 128, lav for 128, høj for 151, lav 256-151 = 105, høj for 171, lav for 85 mm i hele den periode, hvor sinusbølge. Dybest set, alt du skal gøre er at sammenligne en tæller til den relevante værdi i tabellen. Resultatet af sammenligningen giver den tilstand af dit output.
 
hej, PFA en apllication bemærkning til AVR MCU at generere DTMF bruger PWM. dette bør fortælle dig, hvordan du generere sinuskurve usin PWM.
 
[Quote = jonw0224] Maverick Max PWM periode skal være meget kortere end den sinusbølge periode. Lad os sige for eksempel PWM periode er 256 tæller, og der er 36 PWM perioder i løbet af en sinusbølge periode (hver PWM periode er 2 * pi/36 radianer eller 10 grader). Lad os sige, at ved en værdi på nul, bruger vi en PWM periode på 50%. Negativ er 0% og positiv man er 100%. For hver PWM periode, skal du bruge sinus tabellen til at bestemme, hvad din pligt cyklus skal være. For synd (0), PWM = 50%, count = 128. For synd (2 * pi/36), PWM = 59%, count = 151, for synd (2 * pi * 2 / 36), PWM = 67%, count = 171, osv. Så dit output er høj for 128, lav for 128, høj for 151, lav 256-151 = 105, høj for 171, lav for 85 mm i hele den periode, hvor sinusbølge. Dybest set, alt du skal gøre er at sammenligne en tæller til den relevante værdi i tabellen. Resultatet af sammenligningen giver den tilstand af dit output. [/Quote] Cheer for at give mig en idé ... hvad med at bruge af PWM-frekvens som 5kHz og generere 500Hz, mens fclk er 40MHz? Behøver jeg en forumla at detemine dette ud? Maverick Max
 
for 256 tælle for hver PWM puls som jonw0224 sagt, du skal have, F (CLK) = F (PWM) * 256 i dit eksempel: F (CLK) = 5000 * 256 du kan bruge frekvensen skillevæg at give denne F (CLK).
 
Hej Da jeg har formået at forstå, hvordan man kan generere sinus. Nu har jeg brug for at vide, hvordan man variere frekvens (hastighed). Er der nogen vide, hvordan man gør det? Maverick max
 
Du kan ændre din PWM periode eller (mere foretrækkes) kan du ændre antallet af PWM perioder pr sinusbølge periode.
 
Har du noget eksempel for mig at gennemføre variabel frekvens? Maverick Max
 
Faktisk Im mere interesseret i software ... Maverickmax
 

Welcome to EDABoard.com

Sponsor

Back
Top