j'ai actuellement un petit soucis sur le pilotage de mon servomoteur car celui ci n'est pas linéaire, le servomoteur saccade. (servomoteur HS-84MG, carte arduino UNO)
j'utilise se code la :
for(pos = 0; pos < 180; pos += 1)
{ myservo.write(pos);
delay(15);
Il y a t-il un moyen pour supprimé se "défaut" dans le programme? changer le servomoteur? car à vitesse plus élever le saccadement est supprimé.
merci de votre aide d'avance
Merci pour ta réponse mais le problème si je met le delay à 250 je me retrouve avec mon servomoteur qui saccade encore plus car le signal attend encore plus entre chaque "pas"
Le délai de 15ms est peut être un peu juste (la fréquence de rafraichissement d'un servomoteur est de 50Hz = 20ms).
Essaye un delay(20) avec une incrémentation de pos += 10, en faisant cela ton servomoteur saccadera moins car il n'aura pas à faire des pas de +1 à chaque fois.
Peux-tu nous mettre le code complet, car j'ai un sérieux doute. En effet, la lib Servo envoie une pulse dont la durée dépend de la valeur utilisée dans myservo.write(); . Tu ne devrais pas avoir besoin de gérer le délai entre les pulses, la lib utilise un timer pour ça. Il faut savoir que la méthode .write() génère une brève pause dans le délai entre les pulses, et c'est peut-être ça qui te gêne si tu l'utilises trop souvent...
je joins le code.
Car en changent (pos1 = 0; pos1 <90; pos1 +=1) par (pos1 = 0; pos1 <90; pos1 +=10) et en changent le delay cela ne change la vitesse mais la fluidité du servomoteur reste néanmoins la même.
dam3:
je joins le code.
Car en changent (pos1 = 0; pos1 <90; pos1 +=1) par (pos1 = 0; pos1 <90; pos1 +=10) et en changent le delay cela ne change la vitesse mais la fluidité du servomoteur reste néanmoins la même.
J'avais oublié de préciser, si tu fait 10x plus de pas à chaque tour de boucle il faut un délai 10x plus grand pour avoir la même vitesse, sinon ça revient à faire la même chose
oui j'ai essais avec un servo numérique et celui ci analogique. le numérique encore plus de saccade... de plus la saccade se ressent plus car il es accouplé à une patte de longueur de 10mm qui fait tourné mon module.