Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
ÇFAR IS SHT PWM?
QANDNDRIMET PWM P MOR MODULIMIN E GJERSISUL SUL PULSIT është një teknikë me të cilën gjerësia e pulsit ndryshon.
Për ta kuptuar këtë koncept merrni parasysh qartë një puls të orës ose ndonjë sinjal valor katror që ka 50% cikël pune që do të thotë se periudha Ton dhe Toff është e njëjtë, Kohëzgjatja totale për të cilën sinjali ishte i lartë dhe kohëzgjatja për të cilën sinjali ishte i ulët quhet total Periudha kohore.
Për imazhin e treguar më sipër, kjo valë ka një cikël pune prej 50%
Cikli i punës = (Ora ON / Koha totale)*100
ON ON - koha për të cilën sinjali ishte i lartë
Koha OFF - armiku i kohës i cili sinjal ishte i ulët Koha totale - Periudha totale kohore e pulsit (koha ON dhe OFF)
Hapi 1: Zgjedhja e Mikrokontrolluesit
Përzgjedhja e mikrokontrolluesit të përshtatshëm për projektin kjo është pjesa thelbësore e projektit Sinjalet PWM mund të gjenerohen në mikrokontrolluesit me kanale PWM (regjistrat CCP). Për këtë projekt po planifikoj t'i përmbahem pic16f877. ju mund të shkarkoni lidhjen e fletës së të dhënave është dhënë më poshtë
Fleta e të dhënave PIC16F877a klikoni këtu
Moduli CCP është përgjegjës për prodhimin e sinjalit PWM. CCP1 dhe CCP2 janë të shumëfishta me PORTC. PORTC është një port dypalësh i gjerë 8-bit. Regjistri përkatës i drejtimit të të dhënave është TRISC. Vendosja e bitit TRISC (= 1) do të bëjë që pini përkatës PORTC të merret si hyrje. Pastrimi i një biti TRISC (= 0) do ta bëjë pinin PORTC përkatës një dalje.
TRISC = 0; // Pastrimi i këtij biti do ta bëjë PORTC si dalje
Hapi 2: Konfiguro modulin CCP
CCP - MODULE TAP CAPTURE/KRAHASIM/PWM
Çdo modul Capture/Compare/PWM (CCP) përmban një regjistër 16-bit i cili mund të funksionojë si:
• Regjistri i kapjes 16-bit
• Regjistër Krahasimi 16-bitësh
• Regjistri PWM Master/Cikli i Detyrës së Skllavit
Konfiguroni regjistrin CCP1CON në modalitetin PWM
Përshkrimi i regjistrit
CCPxCON Ky regjistër përdoret për të konfiguruar modulin CCP për funksionimin Capture/Compare/PWM.
CCPRxL Ky regjistër mban bitët 8-Msb të PWM, 2-bitët e ulët do të jenë pjesë e regjistrit CCPxCON.
TMR2 Numëruesi pa pagesë i cili do të krahasohet me CCPR1L dhe PR2 për gjenerimin e daljes PWM.
Tani do të përdor binarin për të përfaqësuar bitët për të konfiguruar regjistrin CCP1CON.
referojuni imazhit të mësipërm.
CCP1CON = 0b00001111;
Ju gjithashtu mund të keni formatin gjashtëkëndësh
CCP1CON = 0x0F; // konfigurimi i regjistrit CCP1CON për modalitetin PWM
Hapi 3: Konfigurimi i modulit Timer2 (Regjistri TMR2)
Timer2 është një kohëmatës 8-bit me një para-shkallë dhe një postcaler. Mund të përdoret si bazë kohore PWM për mënyrën PWM të modulit (ve) CCP. Regjistri TMR2 është i lexueshëm dhe i shkrueshëm dhe pastrohet në çdo pajisje Reset.
Tregohet regjistri T2CON
Shkalla parashkollore dhe postale do të rregullojnë frekuencën e daljes së valës së gjeneruar PWM.
Frekuenca = frekuenca e orës/(4*prescaler*(PR2-TMR2)*Postale shkallë*numërimi)
Ku Tout = 1/frekuencë
T2CON = 0b00000100;
Kjo do të gjenerojë kristal 2.5 KHz @ 1Mhz ose 100KHz @ 4MHz (praktikisht ka një kufizim për këtë frekuencë PWM referojuni fletës së të dhënave të veçanta për më shumë detaje)
përfaqësim gjashtëkëndësh
T2CON = 0x04; // aktivizoni T2CON pa Konfigurimin Prescaler dhe postcale
Hapi 4: Konfigurimi i PR2 (Regjistri i Periudhave Timer2)
Moduli Timer2 ka një regjistër të periudhës 8-bit, PR2. Kohëmatësi2 rritet nga 00h derisa përputhet me PR2 dhe pastaj rivendoset në 00h në ciklin e ardhshëm të rritjes. PR2 është një regjistër i lexueshëm dhe i shkruar. Regjistri PR2 është i inicializuar në FFh me Rivendosje.
Vendosja e një diapazoni të përshtatshëm për PR2 do të lejojë përdorimin për të ndryshuar ciklin e punës të valës së gjeneruar PWM
PR2 = 100; // Vendosni kohën e Ciklit në 100 për ndryshimin e ciklit të punës nga 0-100
Për thjeshtësi po përdor PR2 = 100 duke bërë CCPR1L = 80; Cikli i punës 80% mund të arrihet.
Hapi 5: Konfiguroni modulin CCPR1l
Meqenëse PR2 = 100 CCPR1l mund të konfigurohet kudo midis 0-100 për të marrë ciklin e dëshiruar të punës.
Hapi 6: Shkruani Skicën në Ju MPLAB X IDE Kodi është dhënë më poshtë
#përfshi
void vonesë (int a) // funksion për të gjeneruar vonesë {
për (int i = 0; i <a; i ++)
{
për (int j = 0; j <144; j ++);
}
}
pavlefshme kryesore ()
{TRISC = 0; // Pastrimi i këtij biti do ta bëjë PORTC si dalje.
CCP1CON = 0x0F; // konfigurimi i regjistrit CCP1CON për modalitetin PWM
T2CON = 0x04; // aktivizoni T2CON pa Konfigurimin Prescaler dhe postcale.
PR2 = 100; // Vendosni kohën e Ciklit në 100 për ndryshimin e ciklit të punës nga 0-100
ndërsa (1) {
CCPR1L = 75; // gjeneroi 75% vonesë të ciklit të punës (1);
}
}
Unë gjithashtu kam bërë një modifikim të vogël të kodit në mënyrë që frekuenca e valës së gjeneruar PWM
Ky është kodi i simuluar në proteus dhe vala e daljes PWM është treguar më poshtë Për ta ngarkuar këtë në bordet tuaja të zhvillimit të fotografisë përdorni #përfshini me pjesë të përshtatshme konfigurimi.
Faleminderit