Servo.write(int
angle);
La fonction
write()
permet de modifier l'angle du bras du servomoteur en donnant en
paramètre l'angle en question, sous la forme d'un nombre entier compris entre 0° et
180°.
int
Servo.read();
Si par la suite, vous voulez récupérer la dernière valeur d'angle affectée avec la
fonction
, il suffit d'appeler la fonction
read()
qui retourne la dernière valeur
write()
connue.
N.B. L'amplitude de rotation disponible dépend du modèle de servomoteur. Certains
servomoteurs peuvent faire un 0° ~ 180° sans problème, quand d'autre arrive à peine
à tourner de 60°. Pensez à bien lire les spécifications techniques
Servo.writeMicroseconds(unsigned long
us);
1
La fonction
writeMicroseconds()
permet de modifier l'angle du bras du servomoteur
en donnant en paramètre la durée de l'impulsion à transmettre au servomoteur.
Avec un servomoteur standard, une valeur de 1000µs donnera un angle de 0° et une
valeur de 2000µs donnera un angle de 180°. Cependant, avec certains servomoteurs,
ces valeurs peuvent aller jusqu'à une plage de l'ordre de 700 ~ 2300µs pour 0 ~ 180°.
Cette fonction permet de choisir précisément l'angle du bras en fonction du
servomoteur utilisé. Il est cependant nécessaire de faire des tests aux préalables pour
déterminer les limites du bras.
C'est quoi ce bruit ?
Quand on demande à un servomoteur d'aller au-delà de ses limites fonctionnelles (en
lui demandant de faire un 360° par exemple), on entend en général un bruit aigu.
Si le servomoteur émet un bruit aigu / inhabituel, c'est que vous lui demandez
l'impossible
Bloquer le bras d'un servomoteur dans une position "en force" n'est pas très bon et
finira par le tuer. Cela induit aussi une très forte consommation de courant.
Exemple : Sweep
Pour illustrer l'utilisation des fonctions décrites ci-dessus, voici un petit exemple de
code nommé "Sweep".
Son but est simple : faire tourner le bras du servomoteur dans un sens puis dans l'autre,
indéfiniment.
Exemple Sweep utilisant
avec commentaires :
Servo.write()