Vous êtes sur la page 1sur 4

24/03/2023 10:26 Cours:TPS 2103 tp regulationVitesse — troyesGEII

Cours:TPS 2103 tp
regulationVitesse
Fiche
résumé
Retour à
la liste
des Tps
Éléments
de

correction
simuler avec simulIDE
Pensez à mettre sur la 1ère ligne de votre code :
// Compiler: Avrgcc device: nomDuMicrocontroleur

datasheet atmega328p

Sommaire
1 Contraintes
1.1 Commande moteur
1.2 Moteur
2 Travail à réaliser
2.1 Validation de la MLI
2.2 Mise en marche/arrêt
2.3 Asservissement de vitesse
2.3.1 Comptage par interruption
wikigeii.iut-troyes.univ-reims.fr/index.php?title=Cours:TPS_2103_tp_regulationVitesse 1/4
24/03/2023 10:26 Cours:TPS 2103 tp regulationVitesse — troyesGEII

2.3.2 comptage avec un Timer

Contraintes

Commande moteur
on utilisera un timer 16 bits pour contrôler la vitesse du moteur
utilisation du timer dans le mode 14 avec valeur max 0xffff (65535 ou 2^16-1)
la Fmli devra :
être la plus élevée possible
compatible avec la carte de puissance utilisée :
https://www.dfrobot.com/product-1567.html

Moteur
https://www.gotronic.fr/art-motoreducteur-mfa-970d161-12412.htm

Travail à réaliser

Validation de la MLI
(10 points) Ecrire un programme qui
génère une mli
dont on peut faire varier le rapport cylique avec le potentiomètre

1. etape 1 :
pas de potar
générer la mli
la visualiser à l'oscilloscope
2. etape 2
ajouter potentiomètre
il n'est pas nécessaire de faire varier le rapport cyclique de 0% à 100%
3. etape 3 : vous pouvez brancher le moteur

wikigeii.iut-troyes.univ-reims.fr/index.php?title=Cours:TPS_2103_tp_regulationVitesse 2/4
24/03/2023 10:26 Cours:TPS 2103 tp regulationVitesse — troyesGEII

Mise en marche/arrêt
(2 points) Ajouter la gestion marche/arrêt avec les 2 boutons poussoirs

Attention, le rapport cyclique n'est jamais nul, pour arrêter le moteur


déconnecter la broche du timer
mettre la sortie à 0

Asservissement de vitesse
Comptage par interruption
On utilise des fourches optiques TCUT1300 (https://fr.farnell.com/vishay/tcut1300x01/capteur-trans
m-aec-q101-1-2v-cms/dp/2889654?st=TCUT1300X01) pour détecter la rotation de l'arbre moteur.
Il y a 8 dents sur la roue codeuse par tour.
On utilisera l'une des entrées INT0/INT1 pour réaliser le comptage de la roue codeuse.
//interruption qui incrémente un compteur à chaque front montant de la fourche optique

int main()
{
// configuration dont timer/interruption
while(1)
{
_delay_ms(10);
// ttes les 10ms on :
// regarde la valeur du compteur de la fourche optique
// augmente/diminue la vitesse si le compteur est sup/inf à 8
// remettre à 0 le compteur
}
}

(5 points) Asservir la vitesse de rotation de l'arbre moteur pour avoir 8 incréments


toutes les 10ms
Remarque : Il suffit d'augmenter/diminuer le rapport cyclique si il y a trop (peu) d'impulsions dans le temps impar

(1 points) En déduire la vitesse de rotation en sortie de réducteur, et vérifier avec un


tachymètre

comptage avec un Timer


Il est possible de décharger le processeur de la tâche de comptage en utilisant un Timer.
wikigeii.iut-troyes.univ-reims.fr/index.php?title=Cours:TPS_2103_tp_regulationVitesse 3/4
24/03/2023 10:26 Cours:TPS 2103 tp regulationVitesse — troyesGEII

On utilisera le timer0 qu'on configurera :


en mode normal
entrée d'horloge sur T0 (choix avec les bits CS02/CS01/CS00)
la valeur du compteur correspond au registre TCNT0
(2 points) Modifier votre programme en conséquence

Remarques :
en observant les fronts montants+descendants il y a 16 impulsions par tour, ce qui permet
d'augmenter la précision de la mesure de vitesse
on peut jouer sur la durée du delay
il faut rester dans les limites du compteur (8 bits)
on peut éventuellement observer le bit de débordement du timer

Récupérée de « http://wikigeii.iut-troyes.univ-reims.fr//index.php?
title=Cours:TPS_2103_tp_regulationVitesse&oldid=17780 »

La dernière modification de cette page a été faite le 24 mars 2023 à 07:59.

wikigeii.iut-troyes.univ-reims.fr/index.php?title=Cours:TPS_2103_tp_regulationVitesse 4/4

Vous aimerez peut-être aussi