lien processing arduino

Bonjour j'ai un problème avec mon code arduino et mon code processing mais je ne le trouve pas: lorsque mon code est dans ma carte arduino et que j'ai lancer le programme processing rien ne ce passe lorsque j'appui sur une touche de mon clavier les servomoteurs que je souhaite controler depuis mon pc ne bouge pas et je ne comprend pas pourquoi.
pouvez-vous m'aider à résoudre ce problèmes ?

progr_main_test.ino (1.44 KB)

touche_V1.pde (398 Bytes)

postez le code en ligne en utilisant les balises de code, on ne peut pas les lire facilement sur tel portable

Désoler je n'avais pas compris comment faire du coup,
Voila le code arduino :

#include <Servo.h>
//les 5 servo dont ont ce sert 
Servo pouce;
Servo index;
Servo majeur;
Servo annul;
Servo auri;
char touche = Serial.read();

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Setup done");
  
  pouce.attach(2);
  index.attach(3);
  majeur.attach(4);
  annul.attach(5);
  auri.attach(6);

  pouce.write(0);
  index.write(0);
  majeur.write(0);
  annul.write(0);
  auri.write(0);
}

void loop() {
  // put your main code here, to run repeatedly:
  touche=Serial.read();
  
  //fermer la main
  if (touche== 'z'){ 
      delay(1500);
      for(int position = 0; position <= 180; position++){
          pouce.write(position);
          index.write(position);
          majeur.write(position);
          annul.write(position);
          auri.write(position);
          delay(5);
      }
   }
  
  //ouvrir la main
  if(touche== 'e'){ 
      delay(1500);
      for(int position=180; position>=0; position--){
          pouce.write(position);
          index.write(position);
          majeur.write(position);
          annul.write(position);
          auri.write(position);
          delay(5); 
      }
   }  
   
   //position ciseau
   if(touche=='r'){ 
      delay(1500);
      for(int position=0; position<=180; position++){
          pouce.write(position);
          annul.write(position);
          auri.write(position);
      }
   }
}

voila le code processing:

import processing.serial.*;

Serial myArduino;

void setup() {
  size(640,360);
  myArduino = new Serial(this, Serial.list()[2],9600);
}

void key(){
  if(keyPressed == true){
     if(keyCode== 'z'){
      myArduino.write('z'); 
     }
     if(keyCode== 'e'){
      myArduino.write('e'); 
     }
   }
 }

  myArduino = new Serial(this, Serial.list()[2],9600);êtes vous sûr et certain que l'entrée N° 2 correspond bien votre arduino ?

côté Arduino, dans la déclaration des variableschar touche = Serial.read();ça ne sert à rien de lire à ce moment là ce qu'il y a sur le port série... faites le dans la loop() et testez s'il y a quelque chose à lire avant cependant (read retourne -1 sous forme d'un int si rien à lire --> dans ce cas ne pas faire de tets)

PS: //les 5 servo dont ont ce sertserait mieux en//les 5 servos dont on se sert

j'ai vérifié sur processing est le com7 auquel je branche mon arduino est bien l'entrée 2.
Et même lorsque je retire le Serial.read du début comme vous me l'avez suggérer lorsque je lance les deux programme il n'y a toujours rien qui se passe, mes servos ne réagissent pas à l'appui des touches

Vous pouvez faire (dans processing)

import processing.serial.*;   
printArray(Serial.list());

et nous donner la liste que vous obtenez ?

Quel est le type de votre arduino?

voici la liste que j'obtient :

[0] "COM3"
[1] "COM4"
[2] "COM7"

et j'utilise une carte arduino uno 3