Pb communication processing arduino

code processing seul ok
code arduino seul ok
pb: impossible de lire dans arduino (et faire clignoter la led correspondante) la valeur s(numero de l'image la plus proche)
retournée par processing??????

code processing :

import processing.serial.*;
Serial port;
int[] difference(int[] a, int[] b) {                          // renvoie un tableau dont les éléments sont la différence des éléments des 2 tableaux en entrée
  int i;
  int [] c= new int [a.length];
  for (i=0;i<c.length;i++) {
    c[i]=a[i]-b[i];
  }
  return c;
}
int compteur(int []a) {                                        // renvoie le nombre de cellules nulle d'un tableau
  int i;
  int c=0;
  for (i=0;i<a.length;i++) {
    if (a[i]==0) {
      c=c+1;
    }
  }
  return c;
}
int[] stockage(PImage f) {                                    // renvoie dans un tableau les couleurs en niveau de gris
  int[] a=new int[f.width*f.height] ;                                     // d'une image couleur f
  int w = f.width;
  int h = f.height; 
  size(w, h); 
  image(f, 0, 0);
  int i=0;
  for (int y=0; y<h; y++) { 
    for (int x=0; x<w; x++) { 
      color c = get(x, y);                                    // prend la couleur de chaque pixel 
      float r=red(c);                                       // decompose la couleur dans ces composants rgb
      float g=green(c); 
      float b=blue(c);
      int m=(int)((r+g+b)/3);                                  //transforme en niveau de gris
      a[i]=m;                                                    // stocke les couleurs des pixels de l'image de référence dans le tableau a
      i=i+1;
    }
  }
  return a;
}

void setup() { 
  println(Serial.list());                                 
  // ouvre le port au débit voulu
  String portName = Serial.list()[0];
  port = new Serial(this, portName, 9600);


  PImage[] images=new PImage[4]; 
  int t=0;
  int s =0;


  for (int i=1;i<images.length+1;i++) {
    images[i-1]=loadImage("im"+i+".bmp");
  }                            //on charge l'ensemble des images

  for (int j=2;j<5;j++) {
    println(compteur(difference(stockage(images[j-1]), stockage(images[0]))));          // l'image de reference est im1
    if (compteur(difference(stockage(images[j-1]), stockage(images[0])))>t) {                                   // on balaye sur toutes les autres images 
      t=compteur(difference(stockage(images[j-1]), stockage(images[0])));
      s=j;
    }                                   // on conserve l'image la plus proche 
    //celle qui a le plus de pixels identiques
  }
  println("l'image la plus proche est im"+s+".bmp");
  port.write(s);
}

code arduino

 int led2 = 2;             // déclaration des broches
 int led3 = 3;
 int led4 = 4;
 int val;
 void setup() {
 pinMode(led2, OUTPUT); 
 pinMode(led3, OUTPUT);
 pinMode(led4, OUTPUT); // on déclare les pin en sortie
 Serial.begin(9600); // communication série à 9600 bps
 }
 
 
 void loop() {
 if (Serial.available()) { // on test s'il ya qqch à lire
 val = Serial.read();
 }                         // on stocke dans val
 if (val == 2) {                   // si 2 est reçu
 digitalWrite(led2, HIGH);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 // on fait clignoter  led 2
 delay(200);
 
 digitalWrite(led2, LOW); 
 digitalWrite(led3, LOW); 
 digitalWrite(led4, LOW); 
 delay(200); // attendre 100 ms
 }
 
 if (val == 3) { 
 digitalWrite(led2, LOW);
 digitalWrite(led3, HIGH);
 digitalWrite(led4, LOW);
 delay(200);
 
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 delay(200); 
 }
 
 
 if (val == 4) { 
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, HIGH);
 delay(200);
 
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 delay(200);  
 }
 }

Code >>> entre les balises "code".....

Message effacé....

Edit de Jean-François : D'abord la mises en conformité des balises ensuite, si c'est fait on répond..... merci

Ouppss, désolé, j'arrive sur le forum!!