Ante nada me presento. Llevo bastante tiempo leyendo pero nunca he tenido que participar, puesto que muchas de mis dudas se han visto resueltas en la web, pero en este caso no es así.
Llevo tiempo con arduino, aproximadamente año y medio y ahora estoy empezando a hacer cosas "mas serias".
En concreto el problema es el siguiente:
Dispongo de dos arduinos, uno como maestro y otro esclavo, el cual tiene conectados 3 sensores.
Necesito leer los tres sensores y almacenarlos en 3 variables del maestro.
Lectura del maestro:
data = Wire.readStringUntil('.'); //Esto no se si funciona, en este ejemplo usaban port (Sino obvialo este paso y el siguiente
data = data.substring(0, data.length() - 1); //Esto sería para borrarle ese punto final, si igual te lee hasta ahí, no envías el punto y listo
Si no usas lo de arriba, iria simplemente esto
data = Wire.read();
// Buscamos dónde está el -
index = data.indexOf("-"); //Esto nos da la posición del -
// buscamos temperaturaC
temperaturaC = data.substring(0, index); //Nos quedamos con los datos desde el inicio hasta el guion
// buscamos sensor2
sensor2 = data.substring(index+1, data.length()); //Nos salteamos el guión y leemos hasta el final
PD: No tengo como probarlo, confirmame si te sirvió o al menos si orienté hacia alguna solución
PD: Aunque si sabes ingles (y sino también), te invito a que veas el canal de este Genio, hace cosas muy buenas y muy bien explicadas.
En este video video ví el código que te comento, quizás en otros hace lo que buscas más específicamente.
Siendo novato pienso que en la rutina Wire.onRequest(enviaDatos); deberías concatenar en un array los dos datos (temperaturaC y sensor2) para solo hacer una llamada a la funcion Wire.write del tipo Wire.write(array,2); luego con el maestro ya juegas con el dato.
Si pruebas a envíar 3 bytes con Wire.write y te funciona házmelo saber
Yo he querido trabajar lo mismo pero no me sale, quiero recibir los datos de un arduino esclavo que tiene conectado tres sensores. Primero el maestro envia el numero de sensor y dependiendo del número el esclavo debe enviar el valor... pero el maestro simplemente recibe un 3... no se que onda... ayuda!!!
Primero esta el esclavo y luego el maestro