Le Programme

publicité
Contrôle de la vitesse d'un moteur à courant
continue par PWM
I) Introduction :
1- Microcontrôleurs PIC:
Un microcontrôleur est une unité de traitement et d’exécution de
l'information à laquelle on a ajouté des périphériques internes permettant
de réaliser des montages sans nécessiter l’ajout de composants annexes. Un
microcontrôleur peut donc fonctionner de façon autonome après
programmation.
Les PIC intègrent une mémoire de programme, une mémoire de données,
des ports d'entrée-sortie (numériques, analogiques, MLI, UART, bus I²C, etc.),
et même une horloge, bien que des bases de temps externes puissent être
employées. Certains modèles disposent de port et unités de traitement de
l'USB.
PIC 16F:
Les PIC de la famille 16C ou 16F sont des composants de milieu de gamme.
C'est la famille la plus riche en termes de dérivés.
La Famille 16F dispose dorénavant de 3 sous-familles :
- La sous-famille avec le cœur Baseline : instructions sur 12 bits (PIC16Fxxx)
- La sous-famille avec le cœur Middle-Range : instructions sur 14 bits
(PIC16Fxxx)
- La sous-famille avec le cœur Enhanced : instructions sur 14 bits
(PIC16F1xxx)
2- PWM (Pulse-width modulation) :
Pulse-width modulation (ou modulation de largeur d'impulsions) est une
technique couramment utilisée pour synthétiser des signaux continus à l'aide
de circuits à fonctionnement tout ou rien, ou plus généralement à
états discrets.
1
Le principe général est qu'en appliquant une succession
d'états discrets pendant des durées bien choisies, on peut obtenir en
moyenne sur une certaine durée n'importe quelle valeur intermédiaire.
Dans cette image, la PWM est simplement une impulsion qui a :
Ton
Toff
T (totale)
Quel est l'avantage d'utiliser PWM ?
- Contrôle des signaux analogiques en utilisant des signaux numériques.
Comment ?
- Le Rapport Cyclique (Duty Cycle) :
La relation entre Vout, Vin et D :
2
Exemple :
Dans le PIC Microcontrôleur, Vin= 5 V
Si D = 0.5 (50%) alors :
Vout = 0.5 * Vin = 2.5 V
Alors, la tension de sortie d’un PIC est limitée entre 0-5V (se varie selon le
rapport cyclique).
Dans le PIC 16F876A, le signal PWM peut être généré d’un les deux ports
(RC1, RC2).
3
* Notre intérêt est d’appliquer cette technique pour contrôler la vitesse d’un
MCC.
Si on alimente un Moteur à courant continue avec un signal PWM (avec une
amplitude constante), la vitesse du moteur va se varier en fonction de la
vitesse moyenne (Vout).
On peut clairement noter que la vitesse du M2 est plus grande que celle-ci
du M1, à cause de la différence du rapport cyclique.
4
II) Câblage :
Composants principaux :
-
PIC 16F876A ;
2 Boutons ;
Circuit L298 (ou transistor) ;
Moteur à courant continu (6 V)
Pourquoi utilise-t-on un PIC16F876A ?
- Ce genre des microcontrôleurs est capable de générer
un signal PWM
(qu'on peut changer son rapport cyclique), ainsi qu’il y est très disponible
dans le marché.
5
Pourquoi utilise-t-on L 298 ?
- Ce circuit peut transformer un signal de commande à un signal de
puissance sans changer la nature du signal
(PWM-PWM).
Et parce que la tension de sortie du PIC est de 5V, et notre Moteur et de 6 V,
alors on a besoin d’un moyen pour changer l’amplitude de ce signal sans
changer sa nature.
Remarque : on peut faire une modification, à la place du L298 on peut
utiliser un transistor.
III) Principe du fonctionnement :
6
Comme on a cité auparavant, on va réaliser un circuit qui nous permet de
contrôler (varier) la vitesse d’un MCC, alors on a besoin des composant de
contrôle d’entré, c’est pourquoi on utilise les boutons.
Avec ces 2 boutons, on va varier la vitesse de ce moteur comme-ci :
Le bouton « Higher » pour augmenter la vitesse ;
Le bouton « Lower » pour diminuer la vitesse.
Comment ?
La vitesse de ce moteur se varie selon le rapport cyclique, ces 2 boutons sont
capables de varier le rapport cyclique venant du PIC par changement des
commandes du programme qu’on va écrire.
Le signal venant du PIC a une tension de 5 V, ce signal va être utilisé comme
commande du circuit L298 (ou transistor) qui a une tension de puissance de
6 V. sa veut dire ce circuit reçoit un signal PWM de 5V et après il le
transformer en un autre signal PWM, mais de 6V, capable de tourner le
moteur.
On va utiliser Les ports RB0 et RB1 comme entrées de commande, RB0 =
Higher ; RB1 = Lower, le port RC2/CCP1 comme sortie de PWM.
Le Programme :
7
Explication du programme :
« Count » c’est la variable qu’on va utiliser comme la valeur du rapport
cyclique. Initialement elle est égale à 0.
On définit la fréquence du signal PWM par PWM1_ Init(500), le numéro 1
veut dire que ce signal est généré du port CCP1.
If (!portb.f0) veut dire : si on désactive le port b0 (qui été initialement activé)
la valeur du « count » va s’incrémenter par 51.
Et par l’instruction PWM1_Set duty (count), le PIC va générer un signal PWM
qui a un rapport cyclique de 51 (51/255=0.2=20%)
Comme ceci, à chaque fois qu’on clique sur Higher, le rapport cyclique va
s’incrémenter par 51 jusqu’on arrive à la valeur 255(100%) alors le rapport
cyclique ca toujours s’arrêter à cette valeur grâce à l’instruction « if
(count>255) count=255 ».
8
La même chose si on veut diminuer le rapport cyclique, on clique sur Lower
(RB1), la valeur du rapport cyclique se décrémente par 51 (20%) jusqu’à la
valeur du 0, quand elle s’arrête grâce à « if (count<0) count=0 ».
Remarque : dans le programme, on utilise les valeurs 0-255 pour définir la
valeur du rapport cyclique, 255=100% (alors 127.5=50%...etc.)
9
Bibliographie :
- Microchip Technology Inc, 2001, PIC16F87X Data Sheet- 28/40-Pin 8-Bit
CMOS FLASH
- MikroElektronika, 2005, MikroC Making it Simple
- Ea Ai Choon 2005, DC motor speed control using microcontroller pic
16f877a -Master Thesis-Universiti Teknologi Malasya- Googlium Electronics, 2012, Introduction to Pic programming
10
Téléchargement