Orodha ya maudhui:

Tengeneza Wimbi la PWM na PIC Microcontroller: 6 Hatua
Tengeneza Wimbi la PWM na PIC Microcontroller: 6 Hatua

Video: Tengeneza Wimbi la PWM na PIC Microcontroller: 6 Hatua

Video: Tengeneza Wimbi la PWM na PIC Microcontroller: 6 Hatua
Video: Когда одного босса уже мало... ► 9 Прохождение Elden Ring 2024, Novemba
Anonim
Zalisha Wimbi la PWM na PIC Microcontroller
Zalisha Wimbi la PWM na PIC Microcontroller
Tengeneza Wimbi la PWM na PIC Microcontroller
Tengeneza Wimbi la PWM na PIC Microcontroller
Zalisha Wimbi la PWM na PIC Microcontroller
Zalisha Wimbi la PWM na PIC Microcontroller
Zalisha Wimbi la PWM na PIC Microcontroller
Zalisha Wimbi la PWM na PIC Microcontroller

PWM NI NINI?

PWM INASIMAMA KWA UPIMAJI WA UPANA WA PULSE ni mbinu ambayo upana wa mapigo hutofautiana.

Kuelewa wazo hili wazi kuzingatia mapigo ya saa au ishara yoyote ya mawimbi ya mraba ina mzunguko wa ushuru wa 50% ambayo inamaanisha kipindi cha Ton na Toff ni sawa, Muda wote ambao ishara ilikuwa kubwa na muda ambao ishara ilikuwa chini inaitwa jumla muda.

Kwa picha iliyoonyeshwa hapo juu wimbi hili lina mzunguko wa ushuru wa 50%

Mzunguko wa wajibu = (KWA wakati / Jumla ya Wakati) * 100

KWA wakati - wakati ambao ishara ilikuwa kubwa

Muda wa adui wa muda ambao ishara ilikuwa ya chini Jumla ya wakati -Kipindi cha jumla cha muda wa kunde

Hatua ya 1: Kuchagua Microcontroller

Kuchagua Microcontroller
Kuchagua Microcontroller

Chagua microcontroller inayofaa kwa mradi huu ni sehemu muhimu ya mradi ishara za PWM zinaweza kuzalishwa kwa watawala wadogowadogo walio na njia za PWM (sajili za CCP) Kwa mradi huu nina mpango wa kushikamana na pic16f877. unaweza kupakua kiunga cha data kimetolewa hapa chini

Karatasi ya data ya PIC16F877a bonyeza hapa

Moduli ya CCP inawajibika kwa kuzalisha ishara ya PWM. CCP1 na CCP2 zimezidishwa na PORTC. PORTC ni bandari pana ya pande mbili. Sajili ya mwelekeo wa data inayofanana ni TRISC. Kuweka kidogo TRISC (= 1) itafanya kuchukua pini inayofanana ya PORTC kama pembejeo. Kusafisha kidogo TRISC (= 0) itafanya pini inayofanana ya PORTC kuwa pato.

TRISC = 0; // Kufuta kidogo hii kutafanya PORTC kuwa pato

Hatua ya 2: Sanidi mfumo wa CCP

Sanifu CCP MODULE
Sanifu CCP MODULE
Sanifu CCP MODULE
Sanifu CCP MODULE

CCP - KUNA / KUlinganisha / moduli za PWM

Kila moduli ya Kukamata / Linganisha / PWM (CCP) ina rejista ya 16-bit ambayo inaweza kufanya kazi kama:

• Rejista ya Kukamata 16-bit

• 16-bit Linganisha rejista

• Rejista ya Mzunguko wa Wajibu wa Mwalimu / Wajakazi wa PWM

Sanidi usajili wa CCP1CON kwa hali ya PWM

Sajili Maelezo

CCPxCON Rejista hii hutumiwa Kusanidi moduli ya CCP ya Opertaion ya Kukamata / Linganisha / PWM.

CCPRxL Rejista hii inashikilia bits 8-Msb za PWM, 2-bits chini itakuwa sehemu ya rejista ya CCPxCON.

Kaunta ya mbio ya Bure ya TMR2 ambayo italinganishwa na CCPR1L na PR2 kwa kutengeneza pato la PWM.

Sasa nitatumia binary kuwakilisha bits kusanidi sajili ya CCP1CON.

rejelea picha hapo juu.

CCP1CON = 0b00001111;

Unaweza pia muundo wa hex

CCP1CON = 0x0F; // kusanikisha sajili ya CCP1CON kwa hali ya PWM

Hatua ya 3: Kusanidi Moduli ya Timer2 (Usajili wa TMR2)

Kusanidi Moduli ya Timer2 (Usajili wa TMR2)
Kusanidi Moduli ya Timer2 (Usajili wa TMR2)

Timer2 ni kipima muda cha 8-bit na daktari wa dawa na muuzaji wa machapisho. Inaweza kutumika kama msingi wa muda wa PWM kwa hali ya PWM ya moduli za CCP. Rejista ya TMR2 inaweza kusomeka na kuandikwa na inafutwa kwenye kifaa chochote Rudisha.

Rejista ya T2CON imeonyeshwa

Prescale na postcale itarekebisha masafa ya pato la wimbi la PWM linalotokana.

Mzunguko = mzunguko wa saa / (4 * prescaler * (PR2-TMR2) * Postcaler * count)

Ambapo Tout = 1 / frequency

T2CON = 0b00000100;

Hii itazalisha 2.5 KHz @ 1Mhz au 100KHz @ 4MHz kioo (kivitendo kuna kiwango cha juu kwa masafa haya ya PWM rejelea data maalum kwa maelezo zaidi)

uwakilishi wa hex

T2CON = 0x04; // wezesha T2CON bila Prescaler na usanidi wa postcale

Hatua ya 4: Kusanidi PR2 (Sajili ya Kipindi cha Timer2)

Moduli ya Timer2 ina rejista ya kipindi cha 8-bit, PR2. Timer2 nyongeza kutoka 00h hadi inalingana na PR2 na kisha ibadilishe hadi 00h kwenye mzunguko unaofuata wa nyongeza. PR2 ni rejista inayoweza kusomeka na kuandikwa. Rejista ya PR2 imeanzishwa kwa FFh juu ya Rudisha.

Kuweka anuwai inayofaa kwa PR2 itaruhusu matumizi kubadilisha mzunguko wa ushuru wa wimbi la PWM linalotokana

PR2 = 100; // Weka wakati wa Mzunguko hadi 100 kwa kutofautisha mzunguko wa ushuru kutoka 0-100

Kwa unyenyekevu ninatumia PR2 = 100 kwa kutengeneza CCPR1L = 80; Mzunguko wa ushuru wa 80% unaweza kupatikana.

Hatua ya 5: Sanidi Moduli ya CCPR1l

Kwa kuwa PR2 = 100 CCPR1l inaweza kusanidiwa mahali popote kati ya 0-100 kupata mzunguko wa ushuru unaohitajika.

Hatua ya 6: Andika Mchoro juu yako MPLAB X IDE Msimbo Umepewa Bellow

Andika Mchoro juu yako MPLAB X IDE Nambari Inapewa Bellow
Andika Mchoro juu yako MPLAB X IDE Nambari Inapewa Bellow

# pamoja

kuchelewa kwa utupu (int a) // kazi ya kuzalisha kuchelewesha {

kwa (int i = 0; i <a; i ++)

{

kwa (int j = 0; j <144; j ++);

}

}

utupu kuu ()

{TRISC = 0; // Kufuta kidogo hii kutafanya PORTC kuwa pato.

CCP1CON = 0x0F; // kusanikisha sajili ya CCP1CON kwa hali ya PWM

T2CON = 0x04; // wezesha T2CON bila Prescaler na usanidi wa postcale.

PR2 = 100; // Weka wakati wa Mzunguko hadi 100 kwa kutofautisha mzunguko wa ushuru kutoka 0-100

wakati (1) {

CCPR1L = 75; // ilizalisha kuchelewa kwa mzunguko wa ushuru wa 75% (1);

}

}

Pia nimefanya marekebisho kidogo kwa nambari ili masafa ya wimbi la PWM linalotokana

Nambari hii imeiga proteni na wimbi la PWM linaloonyeshwa hapa chini Ili kupakia hii kwenye bodi zako za ukuzaji wa picha tumia # pamoja na mipangilio inayofaa ya usanidi.

Asante

Ilipendekeza: