Lecturas de distancia erróneas recibiendo datos de otro Arduino

Buenas tardes,

Ante todo disculpadme porque igual es algo muy sencillo (soy novato en esto) y no he conseguido encontrar información al respecto en el foro.

Os cuento, tengo 2 arduinos ambos con sensores de distancia con chip VL53L0X.

Haciéndolos funcionar independientemente no tengo problemas y ambos leen correctamente lo que es les ponga delante, pero cuando quiero que Arduino2 envíe información a Arduino1 los datos que llegan son incorrectos con margenes de error enormes.

Me da la sensación que estoy teniendo problemas en la configuración de comunicación entre ellos, a ver que opináis:

Arduino1:

#include <Wire.h>
#include <VL53L0X.h>



void setup() {
  Serial.begin(9600);
  Wire.begin();
   
 }

void loop() {

int Arduino2 = Serial.read();
        

  Serial.print("Medida Arduino_2: ");Serial.println(Arduino2);
  
   }

Arduino2:

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;
int Arduino2;


void setup() {
  Serial.begin(9600);    
  Wire.begin(); 
  
  sensor.init();
  sensor.setTimeout(350);
  sensor.startContinuous();
}

void loop() {
   
     Arduino2 = sensor.readRangeContinuousMillimeters();
      
     Serial.print(Arduino2);
     
     Serial.print("Medida Arduino_2: ");Serial.println(Arduino2);  

      
    }

Muchas gracias de antemano!

Buenas,

Que Arduino usas? Si no es un Mega no puedes usar el puerto serie para comunicar con otro arduino y estar conectado al monitor serial, si podrias hacerlo usando software serial para comunicar los arduino y ver monitor al mismo tiempo.

Por otra parte, cada vez que haces un Serial.read() estas leyendo un caracter, por lo que debes hacer un bucle y ir sumando cada caracter a tu variable usando while (Serial.available() > 0)

Mirate este link, esta en inglés pero no conozco otro similar en español

https://forum.arduino.cc/index.php?topic=396450.0

Buenas krnlpanic,

Uso un UNO, a ver si consigo algo de luz con el link que me adjuntas, muchas gracias.

Hay tanta información sobre como enviar datos por serial y tengo tan pocos conocimientos, que no soy capaz de entenderla.

Saludos!

Prueba esto, yo no lo he probado si no te funciona me dices

String entradaSerial;

void setup() {
  Serial.begin(9600); //iniciamos serial
}

void loop() {
  while (Serial.available() > 0) { //bucle para recibir datos mientras el serial este disponible
    char recibido = Serial.read(); //recogemos el caracter
    entradaSerial = entradaSerial + recibido; //sumamos el caracter al string
  }
  //aqui tu codigo para tratar lo recibido
  //si recibes un numero, puedes usar 
  //arduino2 = entradaSerial.toInt()
  entradaSerial = ""; //reseteamos el string
}

Recuerda que la variable int tiene un limite de 32767, si tu valor es mayor usa long
También tienes ejemplos en el propio IDE en el apartado Communication