Comunicacion HC-05 con arduino

Buenas! Tengo un problema y espero que alguien lo haya probado alguna vez. Estoy en un proyecto de arduino controlado vía bluetooht, y para las diferentes funciones obtengo cuatro datos que las meto en 4 variables para que se vayas refrescando, pero llega un momento en el que el monitor siempre me marca el mismo dato en las 4 variables, no se si es problema de programación o es que el bluetooht manda los datos demasiado rápido.
Para orientaros os dejo un trozo de mi programa para que lo entendáis mejor. Anteriormente estan declaradas todas las variables y todo en global.

void lectura_bluetooth (){

for (contador = 0 ; contador < 4 ; contador++ ){

if (contador == 0){
var1 = BT.read(); //la primera variable es la direccion
Serial.print("Variable 1: ");
Serial.println(var1);
delay(1);
}
if (contador == 1){
var2 = BT.read(); //la segunda variable es la velocidad 0-255
Serial.print("Variable 2: ");
Serial.println(var2);
delay(1);
}
if (contador == 2){
var3 = BT.read(); //la tercera variable es el angulo de giro
Serial.print("Variable 3: ");
Serial.println(var3);
delay(1);
}
if (contador == 3){
var4 = BT.read(); //la cuarta variable es despreciable ya que no la usamos
Serial.print("Variable 4: ");
Serial.println(var4);
delay(1);
}
}
}

Muchas gracias a quien se tan amable :slight_smile:

No se como envias los datos, pero asi a simple vista, diria que envias 4 bytes, cada uno para una variable.

Aqui hay un problema importante, y es que no identificas que es cada dato, y en un error de transmision, si se pierde un dato (cosa habitual en bluetooth) estaras metiendo los datos en las variables incorrectas. La forma correcta de hacerlo, seria enviando cada dato, con una cabecera específica, que identifique que dato es, y un final de linea, que identifique que ahi se acaba el dato.