Cours:Servomoteur

De troyesGEII
Aller à : navigation, rechercher

Documents

ArduinoPinout.png

Travail à réaliser

Commande du servomoteur

La figure ci contre montre le type de signal à générer pour piloter un servomoteur.

Ce signal est donc de type MLI (ou PWM) avec les caractéristiques suivantes :

  • période 20ms maximum => ça peut être moins, la valeur n'a pas d'importance
  • rapport cyclique
    • varie dans une certaine plage
    • ne descend pas à 0%
    • n'augmente pas à 100%
    • les valeurs sont indicatives et propres à chaque servomoteur
    • sur tinkercad il faudra avoir un temps à l'état haut dans la plage [0.5ms à 2.5ms]

TiemposServo

On utilisera le timer1 de l'atmega328p pour piloter ce servomoteur.

Question.jpg Sur quelles broches peut-on le relier ?

Question.jpg Faire un programme qui utilise le mode 14 du timer (cf p133 datasheet) et faire tourner le servomoteur de 0° à 180°


Potentiomètre et servomoteur

On ajoute un potentiomètre qui doit permettre de déplacer le servomoteur facilement.

Il faudra bien évidemment configurer le CAN pour observer le potentiomètre.

Question.jpg Ecrire un programme qui répond à ce cahier des charges, vous pouvez vous aider de l'algorithme suivant :

  • configurer broche en sortie
  • configurer timer1 en mode 14
  • configurer le can
  • répéter
    • lancer une mesure analogique
    • attendre la fin de la mesure (bit ADSC passe à 0 lorsque la mesure est terminée)
    • lire la valeur de l'adc
    • modifier le rapport cyclique
    • ajouter un delay pour fonctionnement de tinkercad