MTservo4fils en détail
Gestion par événements pour UNO, Nano, Mega
Cet objet offre la gestion de servo 4 fils avec un timer 16 bits. C'est pour un servo normal sur lequel on a soudé un fil supplémentaire sur le point milieu du potentiomètre pouvant ainsi informer de la position (faisable si le servo est alimenté en 5V). Cela permet une immobilité à la mise sous tension.
Include à rajouter
#include "MTobjects.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 micro_secondes_minimum micro_secondes_maximum micro_secondes_de_periode can_pour_0_degree can_pour_180_degree
Ces commentaires sont des mots que l'on peut rajouter n'importe où et qui sont ignorés par le compilateur.
Constructeur
MTsevo4fils(pin, pinPot, canFor0degree, canFor180degree, timeFrom0To180Millisecond = 1000 ms, onStopFunction = PAS_D_ACTION, 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
- pinPot (uint8_t): broche analogique du point milieu du potentiomètre
- canFor0degree (word): valeur d'analogRead(pinPot) pour 0°
- canFor180degree (word): valeur d'analogRead(pinPot) pour 180°
- 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) {...}"
- 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