Përmbajtje:

Krijoni valë PWM me mikrokontrollues PIC: 6 hapa
Krijoni valë PWM me mikrokontrollues PIC: 6 hapa

Video: Krijoni valë PWM me mikrokontrollues PIC: 6 hapa

Video: Krijoni valë PWM me mikrokontrollues PIC: 6 hapa
Video: Как управлять несколькими серводвигателями с помощью одного потенциометра с Arduino 2024, Nëntor
Anonim
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC
Gjeneroni valën PWM me mikrokontrollues PIC

Ç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

Zgjedhja e mikrokontrolluesit
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

KONFIGURONI MODULIN e CCP
KONFIGURONI MODULIN e CCP
KONFIGURONI MODULIN e CCP
KONFIGURONI MODULIN e 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)

Konfigurimi i modulit Timer2 (Regjistri TMR2)
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ë

Shkruani Skicën në Ju MPLAB X IDE Kodi është dhënë më poshtë
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

Recommended: