Buenas noches
Tengo una duda sobre programación, necesito saber cómo hacer un programa para enviar los datos obtenidos de los tres ejes del MPU6050 a través de un módulo bluetooth HC-05 a otro arduino que los reciba con otro módulo bluetooth HC-05 y que con los valores del MPU6050 active unos servos
Ya conseguí conectar ambos módulos bluetooth mutuamente e hice un sketch para probar como andaba y anda bien, pero me quedé trabado ahora y no sé cómo seguir la programación
Del mismo modo que lo harías usando el puerto Serie entre por ejemplo un Arduino y la PC o un Arduino y otro Arduino.
Asi que si resuelves el envio de datos Serie ya lo tienes con BT.
Segun el arduino que uses tendras que utilizar SoftwareSerial en alguno y tal vez aprovechar el HardwareSerial del otro.
Lo mejor que puedes hacer es enviar los tres datos de forma muy determinada con algun caracter que le indique al Arduino receptor que el mensaje ha terminado.
Supongamos que envias aa.aabb.bbcc.ccCARACTER_FINAL
En el 2do arduino leeras y guardarás todo hasta recibir el CARACTER_FINAL que obviamente descartarás.
Luego recompones los 3 valores porque conoces las longitudes.
Yo he puesto valores con decimales pero puedes prescindir de ellos enviando enteros pero de nuevo, deben ser de longitud conocida y fija.
Una forma de hacerlo es con sprintf(buffer,"%05d%05d%05d%c", datoX, datoY, datoZ, caracter);
buffer es un byte buffer[20];
Te queda trabajo pero podria ser una manera.
Otrasería usando Strings y luego esperar los valores con ReadStringUntil()
Este es un ejemplo muy simple que espera un CR o '\n'
String mis_numeros;
void setup() {
Serial.begin(9600);
delay(2000);
Serial.println("digita 3 numeros enteros seguidos de 4 digitos?");
}
void loop() {
if(Serial.available()){
my_name = Serial.readStringUntil('\n');
Serial.println("Enviaste: " + mis_numeros + "!");
}
}
prueba con tu monitor serie y envia por ejemplo 100020003000 y luego ENTER
deberia verse
Enviaste : 100020003000