Gracias por ayudarme!
Tal vez lo estoy complicando demasiado, pero lo que quiero es :
Tengo varias sondas DS18B20 conectadas y necesito que actúen en dos ocasiones:
A - temperatura maxima
B- temperatura minima
Identifico a las sondas por su direccion fisica :
DeviceAddress sensor01 = {0x28, 0x02, 0xF4, 0xEB, 0x04, 0x00, 0x00, 0x8A}; //Sensor Interior
DeviceAddress sensor02 = {0x28, 0xDD, 0x17, 0xEC, 0x04, 0x00, 0x00, 0x78}; //Sensor Exterior
No utilizo el comando setLowAlarmTemp() porque solo trabaja con valores enteros y necesito valores float (30.5).
La idea es crear una función que compruebe los valores de alarma. Que sirva para todas las sondas.
Ahora como lo he querido solucionar
He creado dos Array, uno por cada sonda, con el nombre de la sonda y "Temp_" delante.
float Temp_2802f4eb0400008a[]={tempMaxInterior,tempMinInterior};
float Temp_28dd17ec04000078[]={tempMaxExterior,tempMinExterior};
Después llamo a la función pasando le una de las sondas.
checkAlarmaTemp(sensor01);
Después creo una función que recoge la dirección física y compone el nombre del array y la posición que tiene la temperatura Max o Min según la alarma.
void checkAlarmaTemp(DeviceAddress sonda){
String direccionMac="Temp_"; // Guardamos la direccion mac del sensor
float temperaturaActual = leerTemperatura(sonda); // Temperatura de la sonda Actual
for (byte i = 0; i < 8; i++){
if (sonda[i] < 16){
//Serial.print("0");
direccionMac.concat(String(0,HEX));
}
direccionMac.concat(String(sonda[i],HEX));
//Serial.print(sonda[i], HEX);
}
// Comprobamos si la temperatura esta en los niveles establecidos
String temperaturaMax = direccionMac+"[0]";
String temperaturaMin = direccionMac+"[1]";
//Serial.println(Temp_2802f4eb0400008a[0]);
Serial.println(sensorActual);
}
Lo que no consigo por mucho que he buscado la opción de la variable String con el nombre del array que creo ("Temp_2802f4eb0400008a[0]"), sea interpretado como un array, dándome el valor de la temperatura max que tengo en la posición [0] del array, Temp_2802f4eb0400008a.
El objetivo es crear una función que sepa de que sonda tiene que comprobar la alarma.
Un saludo.