Page Personnelle de Vincent Kerhoas
Vincent Kerhoas
Enseignant du Supérieur
Professeur Agrégé
Page Personnelle de Vincent Kerhoas

Drivers

Back                  << Index >>

BROCHAGE

Selection des Broches


Fonctionnement d’un Timer

Un Timer est un compteur qui s’incrémente à chaque front montant d’une horloge.
Cette horloge peut éventuellement être ralentie avec un diviseur de fréquence (Prescaler).
Le Compteur est remis périodiquement à zéro lorsque sa valeur courante de comptage atteint celle d’un registre de comparaison.

T=[(Presc_buff+1) * (Comp_Reg+1)]*T_CLK


Contrôle du Hacheur

Timer en mode wafeform PWM (Pulse Width Modulation)

Pour générer un signal MLI (Modulation de Largeur d’Impulsion), il suffit de comparer la valeur courant de comptage à celle d’un registre (Duty), et de forcer à 0 ou à 1 une broche de sortie du microcontrôleur en fonction du résultat de cette comparaison.

Commande des Moteurs

code motorCommand

Mesures

On applique motorCommand_SetDuty(150)

Signal PWM en sortie du microcontrôleur ( Broche PB4 ) :

La fréquence mesurée du signal est 50kHz
En effet, le timer 3 est configuré pour s’incrémenter à une fréquence de 100MHZ.
Sachant que la remise à zéro se fait à 199,
F=100e6/200=50e3

Signal PWM en sortie du Hacheur :

C’est une tension différentielle qui s’applique aux bornes du moteur :


Codeur Incrémental

Timer en mode comptage

Afin d’asservir les moteurs en vitesse ou en position, il faut déjà connaître les mesures correspondantes.

Le Codeur incrémental

Mesure le la Position

Le comptage des fronts montants des signaux A et B issus du codeur incrémental permet de connaître la position du rotor du moteur.
La précision des codeurs étant de 500 impulsions/tours, le OU EXCLUSIF entre A et B permet d’obtenir une précision de 1000 impulsions par tours.
le signal index déclenche une interruption de type EXTI permettant d’incrémenter une variable et de remettre à zéro le compteur dans le cas d’une mesure de position.

Mesure de la Vitesse

SENS DIRECT

SENS INVERSE

code quadEncoder

Mesures

Signaux A et B du codeur incrémental :

La période mesurée du signal est de 40us.
Il me faut donc 500*40us pour faire un tour ( 500 impulsions par tour ), soit 20ms pour un tour.
Pour connaitre la vitesse en tours par minute, je fais la règle de 3 :
N=60/0.02
N=3000 tr/min

Signaux A et index du codeur incrémental :


Back                  << Index >>