Purtroppo lo sketch che hai caricato non mi restituiva nessun valore, pero' mi e' stato di ispirazione e ho cominciato a giocarci
Sono riuscito a scorgere la fine del tunnel con Questo sketch:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4);
SoftwareSerial mySerial2(5, 6);
byte Hdata = 0;
byte Ldata = 0;
byte CHKS = 0;
unsigned int Misura = 0;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
mySerial2.begin(9600);
}
void loop() {
if (mySerial.available() > 0) {
if (mySerial.read() == 0xFF) { // potrebbe essere il carattere di Start
Hdata = mySerial.read(); //continua la lettura e assegna alle
Ldata = mySerial.read(); //variabili le letture successive.
CHKS = mySerial.read(); //è il byte di checksum, da datasheet gli ultimi 8 bit della somma 0xFF + Hdata + Ldata.
if (CHKS == lowByte(0xFF + Hdata + Ldata)) {
Misura = (Hdata << 8) | Ldata;
Serial.print("Misura1cm ");
Serial.println(Misura / 10, DEC);
}
}
}
delay(10); //rimani fermo per 5 secondi.
if (mySerial2.available() > 0) {
if (mySerial2.read() == 0xFF) { // potrebbe essere il carattere di Start
Hdata = mySerial2.read(); //continua la lettura e assegna alle
Ldata = mySerial2.read(); //variabili le letture successive.
CHKS = mySerial2.read(); //è il byte di checksum, da datasheet gli ultimi 8 bit della somma 0xFF + Hdata + Ldata.
if (CHKS == lowByte(0xFF + Hdata + Ldata)) {
Misura = (Hdata << 8) | Ldata;
mySerial.listen();
Serial.print("Misura2cm ");
Serial.println(Misura / 10, DEC);
}
}
}
delay(1000); //rimani fermo per 5 secondi.
}
Ho aggiunto mySerial.listen(); prima del Serial.print("Misura2cm "); e
SONO RIUSCITO AD OTTENERE QUESTO!!!!

Mi ha restituito il valore di entrambi una sola volta! poi si e' concentrato su uno solo!! Ci Siamo Quasi mi sa!!! io continuo a provare, ma se hai la soluzione postala!