Taula de continguts:
- Pas 1: Selecció del microcontrolador
- Pas 2: CONFIGURAR EL MUDUL CCP
- Pas 3: Configuració del mòdul Timer2 (registre TMR2)
- Pas 4: Configuració de PR2 (registre de períodes Timer2)
- Pas 5: configureu el mòdul CCPR1l
- Pas 6: escriviu l’esbós sobre vosaltres MPLAB X IDE on es mostra el codi
Vídeo: Generar PWM Wave amb microcontrolador PIC: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
QUÈ ÉS PWM?
ELS STANDS PWM PER A LA MODULACIÓ D'AMPLADA D'IMPULS són una tècnica mitjançant la qual es varia l'ample del pols.
Per entendre aquest concepte, considereu clarament un pols de rellotge o qualsevol senyal d’ona quadrada que tingui un cicle de treball del 50% que significa que el període Ton i Toff és el mateix, la durada total durant la qual el senyal era alt i la durada durant la qual el senyal era baix s’anomena total. període de temps.
Per a la imatge que es mostra a sobre, aquesta ona té un cicle de treball del 50%
Cicle de treball = (temps ON / Temps total) * 100
HORA ON: hora en què el senyal era alt
Temps d’APAGAT: temps de l’enemic que el senyal era baix Temps total -Període total de temps del pols (temps d’activació i apagat)
Pas 1: Selecció del microcontrolador
La selecció del microcontrolador adequat per al projecte és la part essencial del projecte que es poden generar senyals PWM en microcontroladors amb canals PWM (registres CCP). Per a aquest projecte tinc previst quedar-me amb pic16f877 Podeu descarregar l'enllaç del full de dades que es mostra a continuació
Full de dades PIC16F877a feu clic aquí
El mòdul CCP és responsable de produir el senyal PWM. CCP1 i CCP2 es multiplexen amb PORTC. PORTC és un port bidireccional d'amplada de 8 bits. El registre de direcció de dades corresponent és TRISC. Si configureu el bit TRISC (= 1), es prendrà el pin PORTC corresponent com a entrada. Si esborreu un bit TRISC (= 0), el PIN PORTC corresponent serà una sortida.
TRISC = 0; // Esborrar aquest bit farà que PORTC com a sortida
Pas 2: CONFIGURAR EL MUDUL CCP
CCP: M MODDULS DE CAPTURA / COMPARACIÓ / PWM
Cada mòdul Capture / Compare / PWM (CCP) conté un registre de 16 bits que pot funcionar com:
• Registre de captura de 16 bits
• Registre de comparació de 16 bits
• Registre de cicle de treball mestre / esclau PWM
Configureu el registre CCP1CON al mode PWM
Descripció del registre
CCPxCON Aquest registre s'utilitza per configurar el mòdul CCP per a l'operació Capture / Compare / PWM.
CCPRxL Aquest registre conté els bits de 8 Mb de PWM, els 2 bits inferiors formaran part del registre CCPxCON.
TMR2 Comptador de funcionament lliure que es compararà amb CCPR1L i PR2 per generar la sortida PWM.
Ara faré servir binari per representar els bits per configurar el registre CCP1CON.
consulteu la imatge superior.
CCP1CON = 0b00001111;
També podeu format hexadecimal
CCP1CON = 0x0F; // configuració del registre CCP1CON per al mode PWM
Pas 3: Configuració del mòdul Timer2 (registre TMR2)
Timer2 és un temporitzador de 8 bits amb un precalador i un postescalador. Es pot utilitzar com a base de temps PWM per al mode PWM dels mòduls CCP. El registre TMR2 es pot llegir i escriure i s’esborra a qualsevol restabliment del dispositiu.
Es mostra el registre T2CON
La preescala i la postescala ajustaran la freqüència de sortida de l’ona PWM generada.
Freqüència = freqüència de rellotge / (4 * prescaler * (PR2-TMR2) * Postscaler * count)
On Tout = 1 / freqüència
T2CON = 0b00000100;
Això generarà cristalls de 2,5 KHz @ 1Mhz o 100KHz @ 4MHz (pràcticament hi ha una limitació per a aquesta freqüència PWM. Consulteu el full de dades particular per obtenir més detalls)
representació hexadecimal
T2CON = 0x04; // habilitar T2CON sense configuració de Prescaler i postescala
Pas 4: Configuració de PR2 (registre de períodes Timer2)
El mòdul Timer2 té un registre de període de 8 bits, PR2. El temporitzador2 augmenta des de les 00h fins que coincideix amb PR2 i, a continuació, es restableix a 00h en el següent cicle d'increment. PR2 és un registre que es pot llegir i escriure. El registre PR2 s’inicialitza a FFh després del reinici.
Establir un rang adequat per a PR2 permetrà que l’ús canviï el cicle de treball de l’ona PWM generada
PR2 = 100; // Estableix el temps de cicle a 100 per variar el cicle de treball de 0 a 100
Per simplicitat estic fent servir PR2 = 100 fent CCPR1L = 80; Es pot aconseguir un 80% del cicle de treball.
Pas 5: configureu el mòdul CCPR1l
Ja que PR2 = 100 CCPR1l es pot configurar entre 0 i 100 per obtenir el cicle de treball desitjat.
Pas 6: escriviu l’esbós sobre vosaltres MPLAB X IDE on es mostra el codi
#incloure
void delay (int a) // funció per generar delay {
for (int i = 0; i <a; i ++)
{
per a (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Esborrar aquest bit farà que PORTC com a sortida.
CCP1CON = 0x0F; // configuració del registre CCP1CON per al mode PWM
T2CON = 0x04; // habilita T2CON sense configuració de Prescaler i postescala.
PR2 = 100; // Estableix el temps de cicle a 100 per variar el cicle de treball de 0 a 100
mentre (1) {
CCPR1L = 75; // va generar un retard del 75% del cicle de treball (1);
}
}
També he fet una petita modificació del codi perquè la freqüència de l'ona PWM generada
Aquest codi es simula en proteus i es mostra l'ona PWM de sortida. Per carregar-lo a les taules de desenvolupament de fotos, utilitzeu #include amb bits de configuració adequats.
Gràcies
Recomanat:
Generar art a partir de comentaris: 5 passos (amb imatges)
Generar art a partir de comentaris: aquest projecte és ambiciós, on volem utilitzar algunes de les parts més qüestionables d’Internet, seccions de comentaris i sales de xat, per crear art. També volem que el projecte sigui fàcilment accessible perquè tothom pugui provar de generar
Com generar tons amb Arduino: 3 passos
Com generar tons amb Arduino: En aquest instructiu he creat un circuit que genera to amb Arduino. M’agrada molt fer projectes senzills i ràpids. Aquí teniu un projecte senzill d’aquest tipus: es tracta d’un projecte d’espectacle i conte que he fet exactament amb la documentació d’Arduino websi
PWM amb ESP32 - LED d’atenuació amb PWM a ESP 32 amb Arduino IDE: 6 passos
PWM amb ESP32 | LED d’atenuació amb PWM a ESP 32 amb Arduino IDE: en aquest instructable veurem com generar senyals PWM amb ESP32 mitjançant Arduino IDE & PWM s'utilitza bàsicament per generar sortida analògica des de qualsevol MCU i aquesta sortida analògica pot ser de 0V a 3,3V (en cas d'esp32) & de
Configuració de bits de fusibles del microcontrolador AVR. Creació i càrrega a la memòria flash del microcontrolador del programa LED intermitent: 5 passos
Configuració de bits de fusibles del microcontrolador AVR. Creació i càrrega a la memòria flash del microcontrolador del programa LED intermitent: en aquest cas, crearem un programa senzill en codi C i el gravarem a la memòria del microcontrolador. Escriurem el nostre propi programa i compilarem el fitxer hexadecimal, utilitzant Atmel Studio com a plataforma de desenvolupament integrada. Configurarem fusible bi
Monopatí amb microcontrolador PIC i LED: 8 passos (amb imatges)
Monopatí amb microcontrolador PIC i LED: què s'obté quan un enginyer elèctric construeix un monopatí des de zero per a un regal de Nadal d'un nen de 13 anys? Obteniu un monopatí amb vuit LEDs blancs (fars), vuit LEDs vermells (llums posteriors), tots controlats mitjançant un microcontrolador PIC. I jo mig