Talaan ng mga Nilalaman:
- Hakbang 1: Pagpili ng Microcontroller
- Hakbang 2: CONFIGURE CCP MODULE
- Hakbang 3: Pag-configure ng Timer2 Module (Rehistro ng TMR2)
- Hakbang 4: Pag-configure ng PR2 (Pagrehistro ng Panahon ng Timer2)
- Hakbang 5: I-configure ang CCPR1l Module
- Hakbang 6: Isulat ang Sketch sa Iyo MPLAB X IDE na Ibinigay sa Bellow ang Code
Video: Bumuo ng PWM Wave Sa PIC Microcontroller: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
ANO ANG PWM?
PWM STANDS FOR PULSE WIDTH MODULATION ay isang pamamaraan kung saan ang lapad ng pulso ay iba-iba.
Upang maunawaan ang konseptong ito malinaw na isinasaalang-alang ang isang pulso ng orasan o anumang parisukat na signal ng alon na mayroon itong 50% na cycle ng tungkulin na nangangahulugang pareho ang panahon ng Ton at Toff, Ang kabuuang tagal na kung saan ang signal ay mataas at ang tagal kung saan mababa ang signal ay tinatawag na total haba ng oras.
Para sa imaheng ipinakita sa itaas ang alon na ito ay may duty cycle na 50%
Duty cycle = (ON time / Total Time) * 100
SA oras - oras kung saan mataas ang signal
OFF time - time foe na signal ay mababa Kabuuang oras -Total na tagal ng oras ng pulso (parehong ON at OFF na oras)
Hakbang 1: Pagpili ng Microcontroller
Ang pagpili ng naaangkop na microcontroller para sa proyekto na ito ay ang mahalagang bahagi ng proyekto PWM signal ay maaaring mabuo sa mga microcontroller na may mga PWM channel (mga rehistro ng CCP). Para sa proyektong ito, pinaplano kong manatili sa pic16f877. maaari mong i-download ang link ng datasheet na ibinigay sa ibaba
PIC16F877a isang sheet ng data mag-click dito
Ang module ng CCP ay responsable para sa paggawa ng PWM signal. Ang CCP1 at CCP2 ay multiplexed sa PORTC. Ang PORTC ay isang 8-bit na malawak na bidirectional port. Ang nararapat na rehistro ng direksyon ng data ay TRISC. Ang pagtatakda ng TRISC bit (= 1) ay gagawa ng kaukulang PORTC pin bilang isang input. Ang pag-clear ng isang bit ng TRISC (= 0) ay gagawing kaukulang pin na kaukulang PORTC.
TRISC = 0; // Clearing this bit will make PORTC as output
Hakbang 2: CONFIGURE CCP MODULE
CCP - MODYUL NG KAPIT / MAGBABAGO / PWM
Ang bawat module ng Capture / Compare / PWM (CCP) ay naglalaman ng isang 16-bit na rehistro na maaaring gumana bilang isang:
• 16-bit na rehistro ng Capture
• 16-bit Ihambing ang rehistro
• Nagrehistro ang PWM Master / Slave Duty Cycle
I-configure ang CCP1CON na magrehistro sa PWM mode
Paglalarawan ng Paglalarawan
CCPxCON Ang rehistro na ito ay ginagamit upang I-configure ang module ng CCP para sa Capture / Compare / PWM opertaion.
CCPRxL Ang rehistro na ito ay nagtataglay ng 8-Msb bits ng PWM, ang mas mababang 2-bits ay magiging bahagi ng rehistro ng CCPxCON.
Ang TMR2 Libreng running counter na kung saan ihahambing sa CCPR1L at PR2 para sa pagbuo ng output ng PWM.
Ngayon ay gagamit ako ng binary upang kumatawan sa mga piraso upang mai-configure ang rehistro ng CCP1CON.
sumangguni sa imahe sa itaas.
CCP1CON = 0b00001111;
Maaari mo ring hex format
CCP1CON = 0x0F; // configuring CCP1CON magparehistro para sa PWM mode
Hakbang 3: Pag-configure ng Timer2 Module (Rehistro ng TMR2)
Ang Timer2 ay isang 8-bit timer na may prescaler at isang postscaler. Maaari itong magamit bilang batayan ng oras ng PWM para sa mode na PWM ng (mga) module ng CCP. Ang rehistro ng TMR2 ay nababasa at nasusulat at na-clear sa anumang Pag-reset ng aparato.
Ipinapakita ang rehistro ng T2CON
Ang prescale at postscale ay ayusin ang dalas ng output ng nabuong PWM wave.
Dalas = dalas ng orasan / (4 * prescaler * (PR2-TMR2) * Bilang ng postcaler *
Kung saan ang Tout = 1 / dalas
T2CON = 0b00000100;
Lilikha ito ng 2.5 KHz @ 1Mhz o 100KHz @ 4MHz na kristal (halos mayroong isang limitasyon para sa dalas ng PWM na ito na sumangguni sa partikular na datasheet para sa higit pang mga detalye)
hex representasyon
T2CON = 0x04; // paganahin ang T2CON nang walang Prescaler at pag-configure ng postcale
Hakbang 4: Pag-configure ng PR2 (Pagrehistro ng Panahon ng Timer2)
Ang module ng Timer2 ay mayroong isang 8-bit na rehistro ng panahon, PR2. Ang mga increment ng Timer2 mula 00h hanggang sa tumugma ito sa PR2 at pagkatapos ay i-reset sa 00h sa susunod na cycle ng pagtaas. Ang PR2 ay isang nababasa at nasusulat na rehistro. Ang rehistro ng PR2 ay pinasimulan sa FFh sa Pag-reset.
Ang pagtatakda ng isang naaangkop na saklaw para sa PR2 ay magbibigay-daan sa paggamit upang baguhin ang duty cycle ng nabuong PWM wave
PR2 = 100; // Itakda ang oras ng Siklo sa 100 para sa pag-iba ng cycle ng tungkulin mula 0-100
Para sa pagiging simple gumagamit ako ng PR2 = 100 sa pamamagitan ng paggawa ng CCPR1L = 80; Maaaring makamit ang 80% na cycle ng tungkulin.
Hakbang 5: I-configure ang CCPR1l Module
Dahil ang PR2 = 100 CCPR1l ay maaaring mai-configure kahit saan sa pagitan ng 0-100 upang makuha ang nais na cycle ng tungkulin.
Hakbang 6: Isulat ang Sketch sa Iyo MPLAB X IDE na Ibinigay sa Bellow ang Code
# isama
walang bisa ang pagkaantala (int a) // upang makabuo ng pagkaantala {
para sa (int i = 0; i <a; i ++)
{
para sa (int j = 0; j <144; j ++);
}
}
walang bisa pangunahing ()
{TRISC = 0; // Clearing this bit will make PORTC as output.
CCP1CON = 0x0F; // configuring CCP1CON magparehistro para sa PWM mode
T2CON = 0x04; // paganahin ang T2CON nang walang Prescaler at pag-configure ng postcale.
PR2 = 100; // Itakda ang oras ng Ikot sa 100 para sa pag-iba-iba ng cycle ng tungkulin mula 0-100
habang (1) {
CCPR1L = 75; // nakabuo ng 75% duty cycle delay (1);
}
}
Gumawa rin ako ng kaunting pagbabago sa code upang ang dalas ng nabuong PWM na alon
Ang code na ito ay na-simulate sa proteus at ang output PWM wave ay ipinapakita sa ibaba Upang mai-upload ito sa iyong pic development boards gamitin ang # isama na may angkop na mga bits sa pagsasaayos.
Salamat
Inirerekumendang:
PIC Microcontroller Batay sa Robotic Arm: 6 Mga Hakbang (na may Mga Larawan)
Batay sa PIC Microcontroller Batay sa Robotic Arm: Mula sa linya ng pagpupulong ng mga industriya ng pagmamanupaktura ng sasakyan hanggang sa mga robot ng telesurgery sa kalawakan, ang mga Robotic Arms ay matatagpuan kahit saan. Ang mga mekanismo ng mga robot na ito ay katulad ng isang tao na maaaring mai-program para sa katulad na pag-andar at
PIC Microcontroller Development Board System: 3 Hakbang
PIC Microcontroller Development Board System: Ang proyektong ito ay para sa disenyo at paggamit ng isang tool sa pag-unlad ng PIC na may kakayahang umangkop upang umangkop sa isang malawak na hanay ng mga elektronikong proyekto ng PIC. Ito ay madalas na mas madali upang makabuo ng mga proyekto ng microcontroller sa paggamit ng mga tool sa pag-unlad; na nagpapahintulot sa nakabatay sa gumagamit
Pag-configure ng AVR Microcontroller Fuse Bits. Paglikha at Pag-upload sa Flash Memory ng Microcontroller ang LED Blinking Program .: 5 Mga Hakbang
Pag-configure ng AVR Microcontroller Fuse Bits. Paglikha at Pag-upload sa Flash Memory ng Microcontroller ang LED Blinking Program .: Sa kasong ito lilikha kami ng simpleng programa sa C code at susunugin ito sa memorya ng microcontroller. Susulat kami ng aming sariling programa at isulat ang hex file, gamit ang Atmel Studio bilang pinagsamang platform ng pag-unlad. Ise-configure namin ang fuse bi
LED Rainbow - RGB LED PWM Controller Construction - Madaling Bumuo: 15 Hakbang
LED Rainbow - RGB LED PWM Controller Construction - Madaling Bumuo: Hakbang-hakbang, madaling sundin ang mga tagubilin sa pagbuo ng isang LED Rainbow RGB LED PWM Controller. Tanging isang kaunting halaga ng mga bahagi ang kinakailangan, kasama ang isang processor ng PIC, at maaari kang bumuo ng isa sa mga kamangha-manghang magagamit na mga Controller ng LED. Ang s
Paano Bumuo ng isang Guitar Speaker Box o Bumuo ng Dalawang para sa Iyong Stereo .: 17 Mga Hakbang (na may Mga Larawan)
Paano Bumuo ng isang Guitar Speaker Box o Bumuo ng Dalawang para sa Iyong Stereo .: Nais kong isang bagong speaker ng gitara na pumunta sa tubo na itinatayo ko. Ang tagapagsalita ay mananatili sa aking tindahan kaya't hindi ito kailangang maging anumang espesyal. Ang takip ng Tolex ay maaaring napakadaling masira kaya't sinabog ko lang ang itim sa labas pagkatapos ng isang magaan na buhangin