Sisällysluettelo:
- Vaihe 1: Mikro -ohjaimen valinta
- Vaihe 2: MÄÄRITÄ CCP -MODUULI
- Vaihe 3: Timer2 -moduulin määrittäminen (TMR2 -rekisteri)
- Vaihe 4: PR2: n määrittäminen (Timer2 -jaksorekisteri)
- Vaihe 5: Määritä CCPR1l -moduuli
- Vaihe 6: Kirjoita luonnos sinulle MPLAB X IDE Koodi annetaan alla
Video: Luo PWM -aalto PIC -mikrokontrollerilla: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
MIKÄ ON PWM?
PWM STANDS PULSE WIDTH MODULATION on pulssin leveyttä säätelevä tekniikka.
Tämän käsitteen ymmärtämiseksi harkitse selvästi kellopulssia tai mitä tahansa neliöaaltosignaalia, jonka käyttöjakso on 50%, mikä tarkoittaa, että Ton- ja Toff -aika ovat samat. ajanjakso.
Yllä olevassa kuvassa tämän aallon käyttöjakso on 50%
Toimintasykli = (ON -aika / kokonaisaika)*100
ON -aika - aika, jonka signaali oli korkea
POIS -aika - aika, jonka signaali oli alhainen
Vaihe 1: Mikro -ohjaimen valinta
Sopivan mikro -ohjaimen valitseminen projektille tämä on olennainen osa projektia PWM -signaaleja voidaan tuottaa PWM -kanavilla varustetuissa mikro -ohjaimissa (CCP -rekisterit). voit ladata taulukon linkin alla
PIC16F877a -tietolomake napsauta tätä
CCP -moduuli vastaa PWM -signaalin tuottamisesta. CCP1 ja CCP2 multipleksoidaan PORTC: llä. PORTC on 8-bittinen kaksisuuntainen portti. Vastaava datasuuntarekisteri on TRISC. Kun asetat TRISC -bitin (= 1), tuloksi otetaan vastaava PORTC -nasta. Jos poistat TRISC -bitin (= 0), vastaava PORTC -nasta on ulostulo.
TRISC = 0; // Tämän bitin tyhjentäminen tekee PORTC: stä tuloksen
Vaihe 2: MÄÄRITÄ CCP -MODUULI
CCP - CAPTURE/COMPARE/PWM MODULES
Jokainen Capture/Compare/PWM (CCP) -moduuli sisältää 16-bittisen rekisterin, joka voi toimia seuraavasti:
• 16-bittinen sieppausrekisteri
• 16-bittinen vertailurekisteri
• PWM Master/Slave Duty Cycle -rekisteri
Määritä CCP1CON -rekisteri PWM -tilaan
Rekisterin kuvaus
CCPxCON Tätä rekisteriä käytetään CCP -moduulin määrittämiseen Capture/Compare/PWM -toiminnolle.
CCPRxL Tämä rekisteri sisältää PWM: n 8 Mb: n bitit, alemmat 2-bitit ovat osa CCPxCON-rekisteriä.
TMR2 Vapaakäyntilaskuri, jota verrataan CCPR1L: ään ja PR2: een PWM -lähdön tuottamiseksi.
Nyt käytän binaaria edustamaan bittejä CCP1CON -rekisterin määrittämiseen.
katso yllä oleva kuva.
CCP1CON = 0b00001111;
Voit myös käyttää hex -muotoa
CCP1CON = 0x0F; // CCP1CON -rekisterin määrittäminen PWM -tilaa varten
Vaihe 3: Timer2 -moduulin määrittäminen (TMR2 -rekisteri)
Ajastin2 on 8-bittinen ajastin, jossa on esiasetin ja jälkikäyttö. Sitä voidaan käyttää PWM -aikapohjana CCP -moduulin (-moduulien) PWM -moodille. TMR2 -rekisteri on luettavissa ja kirjoitettavissa, ja se tyhjennetään millä tahansa laitteella.
T2CON -rekisteri näkyy
Esiasteikko ja jälkiasteikko säätävät muodostetun PWM -aallon lähtötaajuutta.
Taajuus = kellotaajuus/(4*esiskaalain*(PR2-TMR2)*Jälkiaskelkaasu*määrä)
Missä Tout = 1/taajuus
T2CON = 0b00000100;
Tämä tuottaa 2,5 KHz @ 1Mhz tai 100KHz @ 4MHz kristallin (käytännössä tälle PWM -taajuudelle on rajoitus, katso tarkemmat tiedot)
heksadesimaatio
T2CON = 0x04; // ota T2CON käyttöön ilman esiasetinta ja jälkiasteikkoa
Vaihe 4: PR2: n määrittäminen (Timer2 -jaksorekisteri)
Timer2-moduulissa on 8-bittinen jaksorekisteri PR2. Ajastin2 kasvaa 00h: sta, kunnes se vastaa PR2: ta, ja palautuu sitten 00h: ksi seuraavan lisäysjakson aikana. PR2 on luettava ja kirjoitettava rekisteri. PR2 -rekisteri alustetaan FFh: ksi nollaushetkellä.
Kun asetat sopivan alueen PR2: lle, voit muuttaa muodostetun PWM -aallon toimintajaksoa
PR2 = 100; // Aseta sykliaika 100, jos haluat muuttaa käyttöjaksoa 0-100
Yksinkertaisuuden vuoksi käytän PR2 = 100 tekemällä CCPR1L = 80; 80% käyttöjakso voidaan saavuttaa.
Vaihe 5: Määritä CCPR1l -moduuli
Koska PR2 = 100 CCPR1l voidaan konfiguroida missä tahansa välillä 0-100 halutun käyttöjakson saavuttamiseksi.
Vaihe 6: Kirjoita luonnos sinulle MPLAB X IDE Koodi annetaan alla
#sisältää
void delay (int a) // funktio viiveen luomiseksi {
(int i = 0; i <a; i ++)
{
for (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Tämän bitin tyhjentäminen tekee PORTC: stä tuloksen.
CCP1CON = 0x0F; // CCP1CON -rekisterin määrittäminen PWM -tilaa varten
T2CON = 0x04; // ota T2CON käyttöön ilman esiasetinta ja jälkiasteikkoa.
PR2 = 100; // Aseta työkiertoaika 100, jos haluat muuttaa käyttöjaksoa 0-100
samalla (1) {
CCPR1L = 75; // tuotti 75%: n käyttöjakson viiveen (1);
}
}
Olen myös tehnyt pieniä muutoksia koodiin niin, että generoidun PWM -aallon taajuus
Tämä koodi on simuloitu proteuksessa ja lähtö PWM -aalto näkyy alla. Lähetä tämä kuva -kehityskorteillesi käyttämällä #include sopivilla kokoonpanobiteillä.
Kiitos
Suositeltava:
Luo Macintosh Plus -levyt: 3 vaihetta (kuvien kanssa)
Luo Macintosh Plus -ROM -levyjä: Tämä käyttöopas opastaa sinua " kopioinnin " EPROM -kuvat Macintosh Plus ROM -piireiltäsi ja (tai) "polttaminen" kuvat uusiin siruihin. Prosessi suoritetaan periaatteessa kahdesti molempien luomiseksi
Luo mukautettuja karttoja Garmin GPS: lle: 8 vaihetta (kuvilla)
Luo mukautettuja karttoja Garmin GPS -laitteellesi: Jos sinulla on Garmin GPS, joka on suunniteltu retkeilyyn ja muuhun ulkoiluun (mukaan lukien GPSMAP-, eTrex-, Colorado-, Dakota-, Oregon- ja Montana -sarjat, muiden joukossa), sinun ei tarvitse tyytyä paljaiden luiden karttoihin, jotka esiladattiin siihen. E
Luo henkilökohtainen aktiviteettiloki: 6 vaihetta
Rakenna henkilökohtainen toiminnan kirjaaja: Ystäväni Lontoosta, Paul, halusi löytää tavan seurata hänen ruokaa, toimintaa ja sijaintia yhdellä kojelaudalla. Silloin hän keksi idean luoda yksinkertainen verkkolomake, joka lähettäisi tiedot kojelautaan. Hän laittaisi molemmat verkkolomakkeen
Luo Arduino Simon -peli 2 minuutissa!: 3 vaihetta
Luo Arduino Simon -peli 2 minuutissa!: EI puseroita! EI johtoja! EI juottamista! EI Breadboard! Ajatteleminen laatikon ulkopuolella. Joten haluat esitellä mikro-ohjaimesi yhdessä joidenkin lisälaitteiden kanssa todella nopeasti, ennen kuin ystävät tai sukulaiset ovat matkalla … Kokoa
Luo avaruusasema TinkerCad Codeblockissa -- Helppo opetusohjelma: 7 vaihetta (kuvilla)
Luo avaruusasema TinkerCad Codeblockiin || Helppo opetusohjelma: Vaikka ajatus avaruudessa elämisestä saattaa tuntua tieteiskirjallisuudelta, tätä lukiessasi kansainvälinen avaruusasema kiertää maata viiden mailin sekuntinopeudella ja kiertää maapalloa kerran 90 minuutin välein. Tässä projektissa opit