TPE année 2001
Le projet 68hc11bug
Partie commande à distance - Le
robot - Les photos
MLI: modulation en largeur d'impulsion.
(en anglais, PWM: Pulse Width Modulation)
Il s'agit d'un signal carré de rapport cyclique variable.
Là, je vous plus embrouillé qu'autre chose, non? ;-)
En fait, c'est très simple:
Prenons l'exemple de la commande d'un moteur.
Pour commander un moteur, il faut appliquer une tension à ses bornes.
Pour modifier sa vitesse, on peut soit baisser sa tension, soit utiliser la MLI:
Comme un schéma est toujours mieux qu'un long discours, en voilà un:

Donc,
T= Thaut +Tbas
Le rapport cyclique se calcule en faisant Thaut / T
Donc, vous l'avez compris, plus le rapport cyclique est proche de 1, plus grande
sera la vitesse du moteur!
Ainsi, au cours du temps, on peut constater que la commande a au départ un
rapport cyclique de ½, (Th = Tb) puis atteint la valeur de 1, ce qui correspond
à une vitesse maximale pour le moteur, puis décroître, pour atteindre 0 (le
pic) ce qui correspond à une vitesse nulle pour le moteur.
Cependant, vous
vous doutez bien que le servomoteur ne se contrôle pas comme ça.
En effet, pour faire fonctionner le servo dans sa plage nominale, il faut avoir
en théorie un temps haut variant entre 1ms et 2ms, ce qui correspond à -45°
et +45°, l'angle de rotation d'un servo étant de 90°.
Mais quand on a
besoin d'un angle plus grand, comment on fait?
Et bien, il "suffit" de diminuer le temps haut minimal, pour
atteindre -90° et de l'augmenter pour atteindre +90°
Magique, non? ;-)
Pour info, nous avons un temps haut pour le centre valant 1,5ms, le servo en
butée pour 0,8ms et +3,8ms.
Je ferai un schéma plus tard ;)
Le vecteur d'interruption:
on indique l'adresse du programme que le µC doit exécuter quand une
interruption survient.
en basic11, c'est :
interruption fonction <nom de la fonction d'interruption> at <adresse mémoire du vecteur d'interruption>
[Le programme]
end function : on dit au µC qu'il doit retourner au programme principal.