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