Arduino e Processing --> conflitto porte seriali!

Salve a tutti, volevo chiedere delucidazioni su un problema forse banale ma che non riesco proprio a comprendere.
Ho creato un semplicissimo esempio con 2 schede Arduino 1 connesse a due diverse porte seriali e 2 sketch Processing collegati alle stesse seriali.

  • PRIMO ARDUINO (COM 6)
    void setup(){ Serial.begin(9600); }
    void loop(){ Serial.println("1"); delay(1000);}

  • SECONDO ARDUINO (COM 7)
    void setup(){ Serial.begin(9600); }
    void loop(){ Serial.println("1"); delay(1000);}

  • PRIMO PROCESSING
    import processing.serial.*;
    Serial myPort_1;
    //String portName1 = Serial.list()[0]; // equivalente ad esplicitare COM6
    String portName1 = "COM6";
    String val="";
    void setup() { myPort_1 = new Serial(this, portName1, 9600); }
    void draw() {
    while ( myPort_1.available() > 0) {
    val = myPort_1.readStringUntil('\n');
    println(val);
    }
    }

SECONDO PROCESSING
import processing.serial.*;
Serial myPort_2;
//String portName2 = Serial.list()[1]; // equivalente ad esplicitare COM7
String portName2 = "COM7";
String val2="";
void setup() { myPort_2 = new Serial(this, portName2, 9600); }
void draw() {
while ( myPort_2.available() > 0) {
val2 = myPort_2.readStringUntil('\n');
println(val2);
}
}

Come vedete il codice è davvero elementare.
Ora la domanda da 1 milione di dollari...perchè su entrambe le seriali di processing ottengo i valori 1 e 2 in maniera casuale???
Io mi aspetto che i segnali provenienti da Arduino su COM6 arrivino esclusivamente al primo processing (associato alla COM6) e quelli del secondo Arduino su COM7 al processing su COM7...aiutatemi...che sto sbagliando?

PS: ovviamente se faccio partire le seriali di Arduino tutto funziona correttamente..sulla COM6 vedo 1 e sulla COM7 vedo 2. Appena partono i due Processing però scasina tutto :frowning:

Grazie 1000,
Federico

PS: danni del copia-incolla...

  • PRIMO ARDUINO (COM 6)
    void setup(){ Serial.begin(9600); }
    void loop(){ Serial.println("1"); delay(1000);}

  • SECONDO ARDUINO (COM 7)
    void setup(){ Serial.begin(9600); }
    void loop(){ Serial.println("2"); delay(1000);} // QUI ERA 2!! :slight_smile: