Generatoriniai sinusinės bangos, naudojant PWM metodu

M

Maverickmax

Guest
Labas Iki šiol aš suprantu generuoti sine wave peržvalgos lentelės. Dabar man reikia žinoti, kaip sukurti algoritmus naudoti su PWM stalo, norint pagaminti sinusinės bangos. Bet gera pamoka arba nuorodą man sukurti savo supratimą apie šią sritį? Maverick Max
 
Maverick Max PWM laikotarpis turi būti daug trumpesnis, nei sinusinės bangos laikotarpiu. Tarkime, pavyzdžiui, PWM laikotarpis yra 256 skaičiuoja ir yra 36 PWM laikotarpiai, per sinusinės bangos laikotarpį (kiekvienai PWM laikotarpis yra 2 * pi/36 radianais arba 10 laipsnių). Tarkime, kad nulinę vertę, mes naudojame PWM laikotarpis yra 50%. Neigiamas vieno yra 0% ir teigiamas yra 100%. Kiekvienam PWM laikotarpis, galite naudoti sine lentelę, siekiant nustatyti, koks jūsų darbo ciklo turi būti. Nes nuodėmė (0), PWM = 50%, count = 128. Nes nuodėmė (2 * pi/36), PWM = 59%, count = 151, už nuodėmes (2 * pi * 2 / 36), PWM = 67%, count = 171, ir tt Taigi, jūsų produkcija yra aukštos, 128, mažas 128, didelis 151, žemas 256-151 = 105, didelis 171, žemas 85, ir tt visoje sinewave laikotarpį. Iš esmės, visi jūs darote, yra palyginti skaitiklis atitinkamą vertę jūsų stalo. Lyginimo rezultatų duoda savo išėjimo būsena.
 
hi, PFA apllication dėmesį AVR mikrovaldiklius generuoti DTMF naudojant PWM. tai turėtų pasakyti, kaip generuoti sine wave usin PWM.
 
[Quote = jonw0224] Maverick Max PWM laikotarpis turi būti daug trumpesnis, nei sinusinės bangos laikotarpiu. Tarkime, pavyzdžiui, PWM laikotarpis yra 256 skaičiuoja ir yra 36 PWM laikotarpiai, per sinusinės bangos laikotarpį (kiekvienai PWM laikotarpis yra 2 * pi/36 radianais arba 10 laipsnių). Tarkime, kad nulinę vertę, mes naudojame PWM laikotarpis yra 50%. Neigiamas vieno yra 0% ir teigiamas yra 100%. Kiekvienam PWM laikotarpis, galite naudoti sine lentelę, siekiant nustatyti, koks jūsų darbo ciklo turi būti. Nes nuodėmė (0), PWM = 50%, count = 128. Nes nuodėmė (2 * pi/36), PWM = 59%, count = 151, už nuodėmes (2 * pi * 2 / 36), PWM = 67%, count = 171, ir tt Taigi, jūsų produkcija yra aukštos, 128, mažas 128, didelis 151, žemas 256-151 = 105, didelis 171, žemas 85, ir tt visoje sinewave laikotarpį. Iš esmės, visi jūs darote, yra palyginti skaitiklis atitinkamą vertę jūsų stalo. Lyginimo rezultatų duoda savo išėjimo būsena. [/Quote] Cheer, kad suteikėte man tam tikrą idėją ... Ką apie naudojant iš PWM dažnis, pavyzdžiui, 5kHz ir generuoti 500Hz o fclk yra 40MHz? Ar man reikia forumla į detemine tai atlikti? Maverick Max
 
už 256 skaičius kiekvienai PWM impulso kaip jonw0224 sakė, jums reikia; F (CLK) = F (PWM) * 256 į jūsų pavyzdys: F (CLK) = 5000 * 256 galima naudoti dažnio daliklis, kad derlius šioje F (CLK).
 
Labas Kadangi man pavyko suprasti, kaip kurti sine wave. Dabar man reikia žinoti, kaip skiriasi dažnį (greitį). Ar kas nors žino, kaip tai padaryti? Maverick Max
 
Jūs galite pakeisti savo PWM laikotarpis arba (daugiau pageidaujama) galite pakeisti PWM periodų per sinewave laikotarpį.
 
Ar turite kokių nors pvz man įgyvendinti kintamo dažnio? Maverick Max
 
galite naudoti RC laikrodis šaltinio, tokio kaip LM555
 
Tiesą sakant Im labiau domina programinės įrangos ... Maverickmax
 

Welcome to EDABoard.com

Sponsor

Back
Top