Sadržaj:
- Korak 1: Odabir mikrokontrolera
- Korak 2: KONFIGURIRAJTE CCP MODUL
- Korak 3: Konfiguriranje Timer2 modula (TMR2 registar)
- Korak 4: Konfiguriranje PR2 (Timer2 Period Register)
- Korak 5: Konfigurirajte CCPR1l modul
- Korak 6: Napišite skicu na sebi MPLAB X IDE kôd je dat ispod
Video: Generirajte PWM val pomoću PIC mikrokontrolera: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
ŠTO JE PWM?
PWM STOJCI ZA MODULACIJU ŠIRINE PULSA je tehnika pomoću koje se mijenja širina pulsa.
Da biste razumjeli ovaj koncept, jasno razmotrite taktni impuls ili bilo koji signal kvadratnog vala koji ima radni ciklus od 50%, što znači da su razdoblje Ton i Toff isto. vremenski period.
Za gornju sliku ovaj val ima radni ciklus od 50%
Radni ciklus = (vrijeme uključivanja / ukupno vrijeme)*100
ON vrijeme - vrijeme za koje je signal bio visok
OFF vrijeme - vremenski neprijatelj čiji je signal bio nizak Ukupno vrijeme -Ukupno vremensko razdoblje impulsa (i ON i OFF vrijeme)
Korak 1: Odabir mikrokontrolera
Odabir odgovarajućeg mikrokontrolera za projekt ovo je bitni dio projekta. PWM signali mogu se generirati u mikrokontrolerima s PWM kanalima (CCP registri). Za ovaj projekt planiram se držati slike pic16f877. vezu za podatkovnu tablicu možete preuzeti ispod
PIC16F877a podatkovni list kliknite ovdje
CCP modul je odgovoran za proizvodnju PWM signala. CCP1 i CCP2 su multipleksirani s PORTC -om. PORTC je 8-bitni široki dvosmjerni port. Odgovarajući registar smjera podataka je TRISC. Postavljanje bita TRISC (= 1) učinit će da odgovarajući PORTC pin bude ulaz. Brisanjem bita TRISC (= 0) odgovarajući PORTC pin bit će izlaz.
TRISC = 0; // Brisanjem ovog bita učinit će se PORTC izlazom
Korak 2: KONFIGURIRAJTE CCP MODUL
CCP - MODULI HVATANJA/USPOREDBE/PWM
Svaki modul Hvatanje/Usporedba/PWM (CCP) sadrži 16-bitni registar koji može funkcionirati kao:
• 16-bitni registar hvatanja
• 16-bitni usporedni registar
• Registar PWM glavnog/podređenog radnog ciklusa
Konfigurirajte CCP1CON registar u način rada PWM
Opis registra
CCPxCON Ovaj registar se koristi za konfiguriranje CCP modula za rad Hvatanje/Usporedba/PWM.
CCPRxL Ovaj registar sadrži 8-Msb bitove PWM-a, niži 2-bitni bit će dio CCPxCON registra.
TMR2 Brojač slobodnog rada koji će se usporediti s CCPR1L i PR2 za generiranje PWM izlaza.
Sada ću koristiti binarne datoteke za predstavljanje bitova za konfiguraciju registra CCP1CON.
pogledajte gornju sliku.
CCP1CON = 0b00001111;
Možete i šesterokutni format
CCP1CON = 0x0F; // konfiguriranje registra CCP1CON za PWM način rada
Korak 3: Konfiguriranje Timer2 modula (TMR2 registar)
Timer2 je 8-bitni mjerač vremena s predskalerima i mjeračem postova. Može se koristiti kao PWM vremenska baza za PWM način rada CCP modula (ova). TMR2 registar je čitljiv i upisan te se briše na bilo kojem uređaju.
Prikazan je T2CON registar
Pred -skala i post -ljestvica prilagodit će izlaznu frekvenciju generiranog PWM vala.
Učestalost = frekvencija sata/(4*predskaler*(PR2-TMR2)*Mjerilo postova*broj)
Gdje je Tout = 1/frekvencija
T2CON = 0b00000100;
Time će se generirati kristal od 2,5 KHz @ 1Mhz ili 100KHz @ 4MHz (praktički postoji ograničenje za ovu frekvenciju PWM -a, za više pojedinosti obratite se specifikaciji)
hex prikaz
T2CON = 0x04; // omogućujemo T2CON bez Prescalera i konfiguracije postcale
Korak 4: Konfiguriranje PR2 (Timer2 Period Register)
Modul Timer2 ima 8-bitni registar perioda, PR2. Tajmer 2 povećava se od 00h do usklađivanja s PR2, a zatim se vraća na 00h u sljedećem ciklusu povećanja. PR2 je čitljiv i upisiv registar. PR2 registar se nakon resetiranja inicijalizira u FFh.
Postavljanje odgovarajućeg raspona za PR2 omogućit će korištenje za promjenu radnog ciklusa generiranog PWM vala
PR2 = 100; // Postavite vrijeme ciklusa na 100 za promjenu radnog ciklusa od 0-100
Radi jednostavnosti koristim PR2 = 100 čineći CCPR1L = 80; Može se postići 80% radni ciklus.
Korak 5: Konfigurirajte CCPR1l modul
Budući da je PR2 = 100, CCPR1l se može konfigurirati bilo gdje između 0-100 kako bi se dobio željeni radni ciklus.
Korak 6: Napišite skicu na sebi MPLAB X IDE kôd je dat ispod
#uključi
void delay (int a) // funkcija za generiranje kašnjenja {
za (int i = 0; i <a; i ++)
{
za (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Brisanjem ovog bita učinit će se PORTC izlazom.
CCP1CON = 0x0F; // konfiguriranje registra CCP1CON za PWM način rada
T2CON = 0x04; // omogućujemo T2CON bez Prescalera i konfiguracije postcale.
PR2 = 100; // Postavite vrijeme ciklusa na 100 za promjenu radnog ciklusa od 0-100
dok (1) {
CCPR1L = 75; // generirano 75% kašnjenja radnog ciklusa (1);
}
}
Također sam napravio malu izmjenu koda tako da učestalost generiranog PWM vala
Ovaj kôd je simuliran u Proteus -u, a izlazni PWM val prikazan je ispod. Da biste to prenijeli na svoje razvojne ploče za slike, koristite #include s odgovarajućim konfiguracijskim bitovima.
Hvala vam
Preporučeni:
Kako napraviti bespilotnu letjelicu pomoću Arduina UNO - Napravite četverokopter pomoću mikrokontrolera: 8 koraka (sa slikama)
Kako napraviti bespilotnu letjelicu pomoću Arduina UNO | Napravite četverokopter pomoću mikrokontrolera: Uvod Posjetite moj kanal na YouTubeu Drone je vrlo skup gadget (proizvod) za kupnju. U ovom postu ću raspravljati o tome kako to učiniti jeftino ?? I kako možete sami napraviti ovakav po povoljnoj cijeni … Pa u Indiji svi materijali (motori, ESC
Generirajte Banggood partnerske (preporuke) veze lakše nego ikad: 4 koraka
Generirajte Banggood partnerske (preporuke) veze lakše nego ikad: Kondenziranu verziju ove upute možete pronaći na mom osobnom blogu. Affiliate prodaja veliki je izvor dodatnog prihoda za kreatore sadržaja, a koriste ih i mnogi ljudi na instrukcijama. Na nekim od popularnijih web lokacija koje imaju Partnerski program je Ban
Sustav razvojne ploče PIC mikrokontrolera: 3 koraka
Sustav razvojne ploče PIC za mikrokontrolere: Ovaj je projekt namijenjen osmišljavanju i korištenju razvojnog alata PIC -a koji je fleksibilan za široki raspon elektroničkih projekata temeljenih na PIC -u. Često je lakše razvijati projekte mikrokontrolera uz upotrebu razvojnih alata; koji korisnicima omogućuju
Konfiguracija bitova osigurača AVR mikrokontrolera. Stvaranje i učitavanje u flash memoriji mikrokontrolera LED programa koji treperi .: 5 koraka
Konfiguracija bitova osigurača AVR mikrokontrolera. Stvaranje i učitavanje u Flash memoriji mikrokontrolera LED trepćućeg programa. U ovom slučaju izradit ćemo jednostavan program u C kodu i snimiti ga u memoriju mikrokontrolera. Napisat ćemo vlastiti program i sastaviti hex datoteku, koristeći Atmel Studio kao integriranu razvojnu platformu. Konfigurirat ćemo osigurač bi
Bežična komunikacija pomoću jeftinih RF modula od 433MHz i mikrokontrolera Pic. 2. dio: 4 koraka (sa slikama)
Bežična komunikacija pomoću jeftinih RF modula od 433MHz i Pic mikrokontrolera. Drugi dio: U prvom dijelu ovog uputstva pokazao sam kako programirati PIC12F1822 koristeći MPLAB IDE i XC8 kompajler, za slanje jednostavnog niza bežično pomoću jeftinih TX/RX 433MHz modula. Prijemnički modul je spojen preko USB -a na UART TTL kabelski oglas