Turinys:
- 1 žingsnis: mikrovaldiklio pasirinkimas
- 2 veiksmas: sukonfigūruokite CCP modulį
- 3 veiksmas: „Timer2“modulio konfigūravimas (TMR2 registras)
- 4 veiksmas: PR2 konfigūravimas (Timer2 periodo registras)
- 5 veiksmas: sukonfigūruokite CCPR1l modulį
- 6 veiksmas: parašykite eskizą ant jūsų MPLAB X IDE kodas pateiktas žemiau
Video: Sukurkite PWM bangą naudodami PIC mikrovaldiklį: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
KAS YRA PWM?
PWM STANDS PULS WIDTH MODULATION - tai metodas, kuriuo keičiamas pulso plotis.
Norėdami aiškiai suprasti šią sąvoką, pagalvokite apie laikrodžio impulsą arba bet kokį kvadratinių bangų signalą, kurio veikimo ciklas yra 50%, o tai reiškia, kad Tono ir Tofo laikotarpis yra vienodas. laiko tarpas.
Aukščiau pateiktame paveikslėlyje šios bangos veikimo ciklas yra 50%
Darbo ciklas = (įjungimo laikas / visas laikas)*100
ĮJUNGIMO laikas - laikas, kurio signalas buvo didelis
Išjungimo laikas - laikas priešui, kurio signalas buvo žemas
1 žingsnis: mikrovaldiklio pasirinkimas
Pasirinkus projektui tinkamą mikrovaldiklį, tai yra esminė projekto dalis. PWM signalai gali būti generuojami mikrovaldikliuose su PWM kanalais (CCP registrai). Šiam projektui planuoju laikytis pic16f877. Duomenų lapo nuorodą galite atsisiųsti žemiau
PIC16F877a duomenų lapas spustelėkite čia
CCP modulis yra atsakingas už PWM signalo sukūrimą. CCP1 ir CCP2 yra multipleksuojami naudojant PORTC. PORTC yra 8 bitų pločio dvikryptis prievadas. Atitinkamas duomenų krypčių registras yra TRISC. Nustačius TRISC bitą (= 1), bus įvestas atitinkamas PORTC kaištis. Išvalius TRISC bitą (= 0), atitinkamas PORTC kaištis bus išvestis.
TRISC = 0; // Išvalius šį bitą, PORTC bus išvestis
2 veiksmas: sukonfigūruokite CCP modulį
CCP - CAPTURE/COMPARE/PWM MODULES
Kiekviename „Capture/Compare“/PWM (CCP) modulyje yra 16 bitų registras, kuris gali veikti kaip:
• 16 bitų fiksavimo registras
• 16 bitų palyginimo registras
• PWM Master/Slave Duty Cycle registras
Konfigūruokite CCP1CON registrą PWM režimu
Registro aprašymas
CCPxCON Šis registras naudojamas sukonfigūruoti CCP modulį Capture/Compare/PWM opertaion.
CCPRxL Šiame registre yra 8 Msb PWM bitai, mažesni 2 bitai bus CCPxCON registro dalis.
TMR2 laisvai veikiantis skaitiklis, kuris bus lyginamas su CCPR1L ir PR2, kad būtų sukurtas PWM išėjimas.
Dabar aš naudosiu dvejetainį, kad pavaizduotų bitus, kad sukonfigūruotų CCP1CON registrą.
žiūrėkite paveikslėlį aukščiau.
CCP1CON = 0b00001111;
Taip pat galite naudoti šešiakampį formatą
CCP1CON = 0x0F; // CCP1CON registro konfigūravimas PWM režimui
3 veiksmas: „Timer2“modulio konfigūravimas (TMR2 registras)
„Timer2“yra 8 bitų laikmatis su prescaler ir postcaler. Jis gali būti naudojamas kaip PWM laiko bazė CCP modulio (-ų) PWM režimui. TMR2 registras yra skaitomas ir įrašomas, jis pašalinamas bet kuriame įrenginyje.
Rodomas T2CON registras
Išankstinė ir papildoma skalė sureguliuos sukurtos PWM bangos išėjimo dažnį.
Dažnis = laikrodžio dažnis/(4*prescaler*(PR2-TMR2)*Postscaler*skaičius)
Kur Tout = 1/dažnis
T2CON = 0b00000100;
Tai sugeneruos 2,5 KHz @ 1Mhz arba 100KHz @ 4MHz kristalus (praktiškai šiam PWM dažniui yra apribojimų, daugiau informacijos rasite konkrečiame duomenų lape)
šešiakampis vaizdavimas
T2CON = 0x04; // įgalinti T2CON be išankstinio keitiklio ir papildomos skalės konfigūracijos
4 veiksmas: PR2 konfigūravimas (Timer2 periodo registras)
„Timer2“modulis turi 8 bitų laikotarpio registrą PR2. Laikmatis2 didėja nuo 00 val., Kol jis atitinka PR2, o tada kito padidinimo ciklo metu nustatomas į 00 val. PR2 yra skaitomas ir rašomas registras. Iš naujo nustatant PR2 registras inicijuojamas į FFh.
Nustačius tinkamą PR2 diapazoną, bus galima pakeisti sukurtos PWM bangos veikimo ciklą
PR2 = 100; // Nustatykite ciklo laiką iki 100, jei norite pakeisti darbo ciklą nuo 0 iki 100
Paprastumo dėlei naudoju PR2 = 100, darydamas CCPR1L = 80; Galima pasiekti 80% darbo ciklą.
5 veiksmas: sukonfigūruokite CCPR1l modulį
Kadangi PR2 = 100 CCPR1l gali būti sukonfigūruotas bet kur nuo 0 iki 100, kad būtų pasiektas norimas darbo ciklas.
6 veiksmas: parašykite eskizą ant jūsų MPLAB X IDE kodas pateiktas žemiau
#įtraukti
void delay (int a) // uždelsimo generavimo funkcija {
už (int i = 0; i <a; i ++)
{
už (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Išvalius šį bitą, PORTC bus išvestis.
CCP1CON = 0x0F; // CCP1CON registro konfigūravimas PWM režimui
T2CON = 0x04; // įgalinti T2CON be išankstinio keitiklio ir papildomos skalės konfigūracijos.
PR2 = 100; // Nustatykite ciklo laiką iki 100, jei norite pakeisti darbo ciklą nuo 0 iki 100
nors (1) {
CCPR1L = 75; // sugeneruotas 75% darbo ciklo uždelsimas (1);
}
}
Aš taip pat šiek tiek pakeičiau kodą, kad sukurtos PWM bangos dažnis
Šis kodas yra imituojamas „proteus“, o išvesties PWM banga rodoma žemiau. Norėdami tai įkelti į savo nuotraukų kūrimo lentas, naudokite #include su tinkamais konfigūracijos bitais.
Ačiū
Rekomenduojamas:
Valdykite namų šviesas naudodami „Google“padėjėją naudodami „Arduino“: 7 žingsniai
Valdykite namų apšvietimą naudodami „Google“padėjėją naudojant „Arduino“: (Atnaujinta 2020 m. Rugpjūčio 22 d.: Šis nurodymas yra 2 metų amžiaus ir priklauso nuo kai kurių trečiųjų šalių programų. Dėl bet kokių jų pakeitimų šis projektas gali neveikti. Gali būti, kad ne. dirbkite dabar, bet galite sekti jį kaip nuorodą ir keisti pagal
Sukurkite savo plėtros lentą naudodami mikrovaldiklį: 3 žingsniai (su nuotraukomis)
Sukurkite savo plėtros lentą naudodami mikrovaldiklį: Ar kada nors norėjote sukurti savo kūrimo plokštę su mikrovaldikliu ir nežinojote, kaip tai padaryti. Šioje pamokoje aš jums parodysiu, kaip tai padaryti. Viskas, ko jums reikia, yra žinios apie elektroniką, grandinių projektavimas ir programavimas. Jei turite kokių nors užduočių
Kaip padaryti droną naudojant „Arduino UNO“- Padarykite kvadrakopterį naudodami mikrovaldiklį: 8 žingsniai (su paveikslėliais)
Kaip padaryti droną naudojant „Arduino UNO“| Padarykite keturkojį kompiuterį naudodami mikrovaldiklį: Įvadas Apsilankykite mano „Youtube“kanaleA „Drone“yra labai brangi programėlė (produktas). Šiame įraše aptarsiu, kaip tai padaryti pigiai ?? Ir kaip jūs galite padaryti tokį už pigią kainą … Na, Indijoje visos medžiagos (varikliai, ESC
Leiskite dainas naudodami „Arduino“naudodami ADC – PWM „Flyback“transformatoriuje arba garsiakalbyje: 4 veiksmai
Leiskite dainas su „Arduino“naudodami ADC į PWM „Flyback“transformatoriuje arba garsiakalbyje: Sveiki, vaikinai, tai yra antroji mano kito pamokomo dalyko dalis (tai buvo daug sunku). Iš esmės šiame projekte aš naudoju ADC ir laikmačius savo „Arduino“konvertuoti garso signalą į PWM signalą. Tai daug lengviau nei mano ankstesnė instrukcija
Leiskite dainas (MP3) naudodami „Arduino“naudodami PWM garsiakalbyje arba „Flyback Transformer“: 6 žingsniai (su paveikslėliais)
Leiskite dainas (MP3) naudodami „Arduino“naudodami PWM garsiakalbyje arba „Flyback Transformer“: Sveiki, vaikinai, tai yra mano pirmasis pamokomas dalykas, tikiuosi, kad jums tai patiks !! Iš esmės šiame projekte naudojau nuoseklųjį ryšį tarp mano „Arduino“ir nešiojamojo kompiuterio, perduoti muzikos duomenis iš nešiojamojo kompiuterio į „Arduino“. Ir naudojant „Arduino TIMERS t