Go Down

Topic: Erreur dans code pour controller des servomoteurs (Read 4169 times) previous topic - next topic

lesaccrosduvol

Bonsoir

Merci de ta réponse faut-il simplement copier coller cette partie du code à la place de l'ancienne ou faut il changer encore quelques choses car pour le moment le premier servo tourne mais n'importe comment et le deuxième ne réagit a rien  (voir si joint la vidéo)  http://www.youtube.com/watch?v=DUdWrvBN4bM

Je remette le code procesing au cas ou le problème serait lié

Code: [Select]

//----- initialisation valeur série ----
 MySerialPort.write(65);   // valeur initiale 0+ 48 pour format ASCII
 delay (100); // pause  
   MySerialPort.write(97);   // valeur initiale 0+ 48 pour format ASCII
 delay (100); // pause  
 
}

void  draw() { // fonction exécutée en boucle

 //--- nb : la vitesse de rafraîchissement de l'écran est de 60 par seconde apr défaut  - cf frameRate()

}

// fonction de gestion des évènements

//----- clavier --------

void keyPressed() {// cette fonction est exécutée quand un touche est appuyée...

if (key == CODED) { // si appui d'une touche particulière (les touches spéciales up, down, etc.. cf Keycode)

   if (keyCode == UP) { // si touche Haut appuyée

     niveau=niveau+(hauteur/9); // /9 pour avoir 10 niveaux
     if (niveau>=hauteur)niveau=hauteur; // ne pas dépasser hauteur

     SendValue=SendValue+1; // incrémente SendValue
     if (SendValue >=9) SendValue=9; // Empêche débordement variable SendValue

     MySerialPort.write("j(SendValue+65)");   // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
     delay (100); // pause  
   }
   else if (keyCode == DOWN) {// si touche BAS appuyée

   niveau=niveau-(hauteur/9); // /9 pour avoir 10 niveaux
   if (niveau<=0)niveau=0; // ne pas dépasser 0

    SendValue=SendValue-1; // décrémente SendValue
     if (SendValue<=0) SendValue=0;// ne pas dépasser 0

     MySerialPort.write("a(SendValue+65)");   // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
     delay (100); // pause  

   }
   if (keyCode == RIGHT) { // si touche droite appuyée

     niveau1=niveau1+(hauteur1/9); // /9 pour avoir 10 niveaux
     if (niveau1>=hauteur1)niveau1=hauteur1; // ne pas dépasser hauteur

     SendValue1=SendValue1+1; // incrémente SendValue
     if (SendValue1 >=9) SendValue1=9; // Empêche débordement variable SendValue

     MySerialPort.write("J(SendValue1+97)");   // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
     delay (100); // pause  
   }
   else if (keyCode == LEFT) {// si touche gauche appuyée

   niveau1=niveau1-(hauteur1/9); // /9 pour avoir 10 niveaux
   if (niveau1<=0)niveau1=0; // ne pas dépasser 0

    SendValue1=SendValue1-1; // décrémente SendValue
     if (SendValue1<=0) SendValue1=0;// ne pas dépasser 0

     MySerialPort.write("A(SendValue1+97)");   // valeur initiale + 48 pour format ASCII - envoie valeur 0 à 9
     delay (100); // pause  

   }
}


CORDIALEMENT

fdufnews

#16
Jan 23, 2014, 09:52 pm Last Edit: Jan 23, 2014, 09:57 pm by fdufnews Reason: 1

Bonsoir

Merci de ta réponse faut-il simplement copier coller cette partie du code à la place de l'ancienne ou faut il changer encore quelques choses car pour le moment le premier servo tourne mais n'importe comment et le deuxième ne réagit a rien


Tu as mis un  morceau de code je l'ai modifié. A toi de le replacer dans le contexte d'origine.
L'idéal ce serait quand même de comprendre avant de copier

Pour le code processing (pour ce que j'en comprends car je ne pratique pas)
Code: [Select]
//----- initialisation valeur série ----
 MySerialPort.write(65);   // valeur initiale 0+ 65 pour format ASCII
 delay (100); // pause  
   MySerialPort.write(97);   // valeur initiale 0+ 97 pour format ASCII
 delay (100); // pause  
 
}

void  draw() { // fonction exécutée en boucle

 //--- nb : la vitesse de rafraîchissement de l'écran est de 60 par seconde apr défaut  - cf frameRate()

}

// fonction de gestion des évènements

//----- clavier --------

void keyPressed() {// cette fonction est exécutée quand un touche est appuyée...

if (key == CODED) { // si appui d'une touche particulière (les touches spéciales up, down, etc.. cf Keycode)

   if (keyCode == UP) { // si touche Haut appuyée

     niveau=niveau+(hauteur/9); // /9 pour avoir 10 niveaux
     if (niveau>=hauteur)niveau=hauteur; // ne pas dépasser hauteur

     SendValue=SendValue+1; // incrémente SendValue
     if (SendValue >=9) SendValue=9; // Empêche débordement variable SendValue

     MySerialPort.write("(SendValue+65)");   // valeur initiale + 65 pour format ASCII - envoie valeur 0 à 9 codé par A à J
     delay (100); // pause  
   }
   else if (keyCode == DOWN) {// si touche BAS appuyée

   niveau=niveau-(hauteur/9); // /9 pour avoir 10 niveaux
   if (niveau<=0)niveau=0; // ne pas dépasser 0

    SendValue=SendValue-1; // décrémente SendValue
     if (SendValue<=0) SendValue=0;// ne pas dépasser 0

     MySerialPort.write("(SendValue+65)");   // valeur initiale + 65 pour format ASCII - envoie valeur 0 à 9 codé par A à J
     delay (100); // pause  

   }
   if (keyCode == RIGHT) { // si touche droite appuyée

     niveau1=niveau1+(hauteur1/9); // /9 pour avoir 10 niveaux
     if (niveau1>=hauteur1)niveau1=hauteur1; // ne pas dépasser hauteur

     SendValue1=SendValue1+1; // incrémente SendValue
     if (SendValue1 >=9) SendValue1=9; // Empêche débordement variable SendValue

     MySerialPort.write("(SendValue1+97)");   // valeur initiale + 97 pour format ASCII - envoie valeur 0 à 9 codé par a à j
     delay (100); // pause  
   }
   else if (keyCode == LEFT) {// si touche gauche appuyée

   niveau1=niveau1-(hauteur1/9); // /9 pour avoir 10 niveaux
   if (niveau1<=0)niveau1=0; // ne pas dépasser 0

    SendValue1=SendValue1-1; // décrémente SendValue
     if (SendValue1<=0) SendValue1=0;// ne pas dépasser 0

     MySerialPort.write("(SendValue1+97)");   // valeur initiale + 97 pour format ASCII - envoie valeur 0 à 9 codé par a à j
     delay (100); // pause  

   }
}

Go Up