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
![Generar PWM Wave amb microcontrolador PIC: 6 passos Generar PWM Wave amb microcontrolador PIC: 6 passos](https://i.howwhatproduce.com/images/010/image-27971-j.webp)
Vídeo: Generar PWM Wave amb microcontrolador PIC: 6 passos
![Vídeo: Generar PWM Wave amb microcontrolador PIC: 6 passos Vídeo: Generar PWM Wave amb microcontrolador PIC: 6 passos](https://i.ytimg.com/vi/FCchDr82Mgs/hqdefault.jpg)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
![Genereu PWM Wave amb el microcontrolador PIC Genereu PWM Wave amb el microcontrolador PIC](https://i.howwhatproduce.com/images/010/image-27971-1-j.webp)
![Genereu PWM Wave amb el microcontrolador PIC Genereu PWM Wave amb el microcontrolador PIC](https://i.howwhatproduce.com/images/010/image-27971-2-j.webp)
![Genereu PWM Wave amb el microcontrolador PIC Genereu PWM Wave amb el microcontrolador PIC](https://i.howwhatproduce.com/images/010/image-27971-3-j.webp)
![Genereu PWM Wave amb el microcontrolador PIC Genereu PWM Wave amb el microcontrolador PIC](https://i.howwhatproduce.com/images/010/image-27971-4-j.webp)
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
![Selecció del microcontrolador Selecció del microcontrolador](https://i.howwhatproduce.com/images/010/image-27971-5-j.webp)
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
![CONFIGURA EL MUDUL CCP CONFIGURA EL MUDUL CCP](https://i.howwhatproduce.com/images/010/image-27971-6-j.webp)
![CONFIGURA EL MUDUL CCP CONFIGURA EL MUDUL CCP](https://i.howwhatproduce.com/images/010/image-27971-7-j.webp)
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)
![Configuració del mòdul Timer2 (registre TMR2) Configuració del mòdul Timer2 (registre TMR2)](https://i.howwhatproduce.com/images/010/image-27971-8-j.webp)
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
![Escriviu l’esbós sobre vosaltres MPLAB X IDE que el codi es mostra a continuació Escriviu l’esbós sobre vosaltres MPLAB X IDE que el codi es mostra a continuació](https://i.howwhatproduce.com/images/010/image-27971-9-j.webp)
#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: 5 passos (amb imatges) Generar art a partir de comentaris: 5 passos (amb imatges)](https://i.howwhatproduce.com/images/002/image-5024-43-j.webp)
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: 3 passos Com generar tons amb Arduino: 3 passos](https://i.howwhatproduce.com/images/009/image-25327-j.webp)
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: 6 passos PWM amb ESP32 - LED d’atenuació amb PWM a ESP 32 amb Arduino IDE: 6 passos](https://i.howwhatproduce.com/images/001/image-1144-103-j.webp)
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: 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: 5 passos](https://i.howwhatproduce.com/images/001/image-689-71-j.webp)
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: 8 passos (amb imatges) Monopatí amb microcontrolador PIC i LED: 8 passos (amb imatges)](https://i.howwhatproduce.com/images/003/image-8132-46-j.webp)
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