Académique Documents
Professionnel Documents
Culture Documents
PWM
1- Gestion du temps
Le timer0 est un compteur qui assure deux fonctions :
- compter les impulsions reçues sur le pin RA4/T0CKI. Nous dirons dans ce
cas que nous sommesen mode compteur.
- compter les cycles d’horloge du PIC lui-même. Dans ce cas, comme
l’horloge est fixe, nous compterons donc en réalité du temps. Donc,
nous serons en mode « timer ».
1-2-Travail demandé :
RELAI
Dans ce projet la minuterie, sur la base de registre TMR0, est utilisée comme un compteur.
L'entrée de comptage est reliée à un bouton-poussoir Input de sorte que toute pression sur
Input provoque TMR0 à compter une impulsion. Lorsque le nombre d'impulsions
correspond au nombre stocké dans le registre nommé TEST, la valeur logique 1 (5V)
apparaît sur le pin3 de PORTD. Cette tension active un relais électromécanique, et ce bit est
appelé « RELAI » dans le programme.
Dans le registre de TEST est stocké un nombre de 5 pour cet exemple. Bien sûr, il peut être
n'importe quel nombre défini comme une constante. Par ailleurs, le microcontrôleur peut
activer un autre appareil au lieu de relais, tandis que le capteur peut être utilisé à la place du
bouton-poussoir. Cet exemple illustre l'une des applications les plus courantes du
microcontrôleur dans l'industrie ; quand quelque chose est effectué autant de fois que
nécessaire, puis quelque chose d'autre doit être activé ou désactivé, etc.
Code-source 1
2- Signal PWM :
2-1- Principe :
Un signal MLI (PWM) possède une période fixe mais une longueur d’impulsion variable. Le
rapport entre la largeur de l’impulsion (ton) et la période (T) est la caractéristique principale
d’un signal PWM. C’est le rapport cyclique (Duty cycle). Cette technique est utilisée
principalement pour commander des moteurs à vitesse variable.
2-1-1- Configuration :
Le signal PWM est généré à l’aide du Timer2 (8 bits) et récupéré sur le pin CCP1 (RC2), pour
cela, ce pin doit être configuré en sortie.
Les données principales à fournir sont la période du signal (ou sa fréquence) et le rapport
cyclique :
a. La période du signal est enregistrée dans le registre PR2, elle est calculée par la formule
suivante :
Duty cycle
Bit9 Bit2 Bit0
CCP1CON<5 :4>
CCPR1L (MSB)
(LSB)
La valeur du rapport cyclique peut être modifié à tout instant, mais cette modification ne sera
pas vue que lorsque cette valeur est écrite dans le registre CCPR1H, c'est-à-dire lorsque
PR2=TMR2.
bit7 bit0
-- TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
Nom Fonctions ou états
bit7 Non utilisé
bit6-3 TOUTPS3:TOUTPS0: Timer2 Configuration du postscaler :
Output Postscale Select bits 0000 = 1:1
0001 = 1:2
0010 = 1:3
…….
1111 = 1:16
bit2 TMR2ON: Timer2 On bit 1 : Timer2 est activé
0 : Timer2 est désactivé
bit1-0 T2CKPS1:T2CKPS0: Timer2 00 : Prescaler is 1
Clock Prescale Select bits 01 : Prescaler is 4
1x : Prescaler is 16
Pour faire varier la vitesse d’un moteur à courant continu, on vous propose le circuit de la
figure ci-dessous :
Ecrire un programme qui lit une valeur numérique sur le PORTB sous forme d’un nombre
codé sur 8 bits. Ce nombre constituera le rapport du cyclique d'un signal PWM qui va être
généré pour commander un moteur à courant continu.