MTservo en détail
Cet objet offre la gestion de servo classique (3 fils) avec un timer 16 bits.
Include à rajouter
#include "MTservo.h" // Voir http://arduino.dansetrad.fr/MTobjects
Je conseille fortement de laisser le commentaire, si une autre personne voulait essayer le programme, elle aurait directement un lien de téléchargement. C'est valable pour toutes les bibliothèques que vous utilisez.
Commentaire utile
micro_secondes milli_secondes milli_secondes_pour_aller_de_0_a_180 micro_secondes_initialement degres_initialement micro_secondes_minimum micro_secondes_maximum micro_secondes_de_periode
Ces commentaires sont des mots que l'on peut rajouter n'importe où et qui sont ignorés par le compilateur.
Constructeurs
MTservo(pin, timeFrom0To180Millisecond, onStopFunction, initialPulse, minPulseMicroseconds, maxPulseMicroseconds, periodMicroseconds); MTservo(pin, timeFrom0To180Millisecond, onStopFunction, initialPulse, minPulseMicroseconds, maxPulseMicroseconds); // periodMicroseconds = 20000 µs MTservo(pin, timeFrom0To180Millisecond, onStopFunction, initialPulse, minPulseMicroseconds); // maxPulseMicroseconds = 2500 µs, periodMicroseconds = 20000 µs MTservo(pin, timeFrom0To180Millisecond, onStopFunction, initialPulse); // minPulseMicroseconds = 500 µs, maxPulseMicroseconds = 2500 µs, periodMicroseconds = 20000 µs MTservo(pin, timeFrom0To180Millisecond, onStopFunction); // initialPulse = 1500 µs, minPulseMicroseconds = 500 µs, maxPulseMicroseconds = 2500 µs, periodMicroseconds = 20000 µs MTservo(pin, timeFrom0To180Millisecond); // onStopFunction = PAS_D_ACTION, initialPulse = 1500 µs, minPulseMicroseconds = 500 µs, maxPulseMicroseconds = 2500 µs, periodMicroseconds = 20000 µs MTservo(pin); // timeFrom0To180Millisecond = 1000 ms, onStopFunction = PAS_D_ACTION, initialPulse = 1500 µs, minPulseMicroseconds = 500 µs, maxPulseMicroseconds = 2500 µs, periodMicroseconds = 20000 µs
pin (uint8_t): broche Arduino Uno/Nano: 9, 10 Mega: 2, 3, 5, 6, 7, 8, 11, 12, 13, 44, 45, 46
timeFrom0To180Millisecond (word): temps pour couvrir 180°
onStopFunction: ce qui se passe quand le servo arrive en position et à l'initialisation)
PAS_D_ACTION → rien ne se passe
fonction → appel d'une fonction "void fonction(void) {...}"
initialPulse (word): pour fixer la position à la mise sous tension. En µs ou en degré
minPulseMicroseconds (word): durée de l'impulsion minimum
maxPulseMicroseconds (word): durée de l'impulsion minimum
periodMicroseconds (word): période, maximum 32000µs
Fonctions utiles
void writeDegree(word valeur); void writeMicrosecond(word valeur); void detach(void); void attach(void); void onStop(void);
writeDegree → va à la position demandée en degré (ou en µs)
writeMicrosecond → va à la position demandée en µs (ou en degré)
detach → déconnecte la broche, elle redevient "normale" en entrée (n'efface pas les temps programmés)
attach → reconnecte la broche, si elle a été "détached"
onStop → fonction à surcharger appelée quand on vient de finir le mouvement (et à l'initialisation)
Fonctions bonus
void setTimeFrom0To180(word timeFrom0To180Millisecond); word getTimeFrom0To180(void); void setMinPulseMicroseconds(word minPulseMicroseconds); word getMinPulseMicroseconds(void); void setMaxPulseMicroseconds(word maxPulseMicroseconds); word getMaxPulseMicroseconds(void); void setPeriod(word periodMicroseconds); word getPeriod(void); boolean getRun(void);
setTimeFrom0To180 fixe la vitesse de déplacement
setTimeFrom0To180 sans paramètre, fixe la vitesse de déplacement à 1s pour un déplacement de 180°
getTimeFrom0To180 récupère le vitesse de déplacement en ms
setMinPulseMicroseconds( fixe la durée minimale de l'impulsion
setMinPulseMicroseconds sans paramètre, fixe la durée minimale de l'impulsion à 500µs
getMinPulseMicroseconds retourne la durée minimale de l'impulsion en µs
setMaxPulseMicroseconds fixe la durée maximale de l'impulsion
setMaxPulseMicroseconds sans paramètre, fixe la durée maximale de l'impulsion à 2500µs
getMaxPulseMicroseconds retourne la durée maximale de l'impulsion en µs
setPeriod fixe la période des impulsions
setPeriod sans paramètre, fixe la période des impulsions à 20ms
getPeriod retourne la période des impulsions en µs
getRun true si il se déplace, false si il est arrêté
Exemples