saludos a todos:
estoy algo liadillo con el tema de las comunicaciones entre multiples arduinos.
el tema es que quiero comunicar varios arduinos entre si. en un principio pense en utilizar rs485 ya que uno de ellos esta algo lejos del resto (unos 9metros mas o menos) pero luego mirando por la web creo que es mas acertado, ya que solo es uno el problematico, usar el bus i2c y para el que esta alejado usar un p82b715pn al objeto de alargar un poco el bus para ese dispositivo (segun el data sheet hasta 50 metros). Con esto consigo un importante ahorro de componentes (max485) y simplifico el circuito. creo que es buena idea ¿no?
por otro lado en lo que atañe al software mediante el i2c he comunicado varios arduinos (un master y 2 esclavos) para lo basico dos pulsadores en el maestro y segun accione uno u otro se encenderá el led en uno u otro esclavo. es decir comunicacion de maestro a esclavo.
el problema es que los esclavos estarán leyendo unas temperaturas y las almacenan en variables y me gustaria que a peticion del maestro se las enviasen para que el maestro las registre. A su vez el maestro tambien podria mandar temperaturas de consigna a los esclavos.
pongo una especie de pseudo codigo a ver si se men entiende mejor
(se suponen incluidas y declaradas las variables necesarias)
//esclavo 1
recibe del maestro la variable Tcsg_hab1 y la guarda en temp_consig_hab1;
temp_amb_hab1=sensores.getTemC(sensor_hab1);
if (temp_amb_hab1>=temp_consig_hab1){
digitalWrite(calentador_hab1, LOW);
}
//esclavo 2
recibe del maestro la variable Tcsg_salon y la guarda en temp_consig_salon;
temp_amb_salon=sensores.getTempC(sensor_salon);
if (temp_amb_salon>=temp_consig_salon){
digitalWrite(calentador_salon, LOW);
}
//maestro
pregunta al esclavo 1 por la variable temp_amb_hab1;
lo guarda en la variable Tam_hab1;
pregunta al esclavo 2 por la variable temp_amb_salon;
lo guarda en la variable Tam_salon;
envia al esclavo 1 la variable Tcsg_hab1;
envia al esclavo 2 la variable Tcsg_salon;
NOTA las variables son del tipo float