Aller au contenu


matsu

Inscrit(e) (le) 11 déc. 2011
Déconnecté Dernière activité avril 23 2012 08:15
-----

Messages que j'ai postés

Dans le sujet : arduino code servo

21 avril 2012 - 02:09

je ne sais pas si c'est ça qui est responsable de ton bug mais tu as déclaré ta variable vitesse comme int et tu lui rajoute un nombre à virgule... il aurait fallu que tu la déclares en float


En effet j'avais pas remarqué merci !
malheureusement ça change pas le résultat..

Dans le sujet : arduino code servo

20 avril 2012 - 03:24

oui
ajoute un delay de quelques millisecondes dans la boucle aussi afin de "voir" l'accélération


#include <Servo.h>

Servo myservo1;
int vitesse =1520; 

void setup()
{
myservo1.attach(9);
}

void loop () {
  
while (vitesse<1800)
{ vitesse= vitesse +0,5;
myservo1.writeMicroseconds(vitesse);
delay(25); }


 
}

ça fonctionne pas rien ce passe? il prend seulement en compte le int vitesse=1520; (mon neutre)

Dans le sujet : arduino code servo

20 avril 2012 - 02:46

Edit: j'ai écrit trop vite :-S en fait ce que BT voulais dire c'est toi ce que tu faisait c'est dans ta boucle tu modifiais ta variable en lui rajoutant plusieirs fois 0,5 , et tu l'envoyait à ton servo une fois qu'elle valait 1800 du coup pour ton servo ça revient au même que si tu lui envoi directement 1800 sans la boucle... ce qu'il faut c'est lui envoyer ta variable entre chaque incrementation de celle-ci, donc mettre le writeMicrosecond dans ta boucle...


oui mais je comprend pas comment le mettre dans la boucle?

while (vitesse<1800) { vitesse= vitesse +0,5 ; myservo1.writeMicroseconds(vitesse); }



????

Dans le sujet : arduino code servo

20 avril 2012 - 01:54

Pour faire varier la vitesse, il faut faire un writeMicroseconds A CHAQUE FOIS que tu modifies ta variable vitesse, donc dans ta boucle while !


ça veut dire qu'il faut que je declare plusieur variable vitesse? je suis pas sur d avoir compris?

Dans le sujet : arduino code servo

20 avril 2012 - 11:01

Bon avec un peu de retard je me replonge dans ce problème..

j'ai essayé d'augmenter la vitesse progressivement avec un code simple mais cela ne fonctionne pas (le code compile mais donne pas ce que je veux ^^ )

#include <Servo.h>

Servo myservo1;
int vitesse =1520;

void setup()
{
myservo1.attach(9);
}

void loop () {

while (vitesse<1800) { vitesse= vitesse +0,5 ; }


myservo1.writeMicroseconds(vitesse);


}



concernant les cycles je dois utiliser la fonction analogwrite je crois mais je vois pas trop comment?