guardar temperatura maxima y minima (SOLUCIONADO)

Hola a todos.

He conectado un lcd keypad shield y un ds1820 a arduino, y estoy tratando de hacer un termometro.

Hasta ahora la cosa va bien, lee la temperatura y la muestra en pantalla en la primera linea. Ahora quiero completarlo haciendo que muestre en la segunda linea la temperatura maxima total en el tiempo de medicion, y tambien la minima. Pero estoy un poco liado, me he trabado, y no se bien como hacerlo. He echo esto, pero no funciona, continuamente se iguala a temp... :

void loop ()
 {
   byte direccion [8];
   float temp;
   
   float maxi;
   float mini;
   buscasensor (direccion);
   
   temp = leeTemp (direccion);  // Se hace la llamada a la funcion que lee la temperatura del sensor
   
   if(temp>maxi){
      maxi=temp;
   }
   
   if(temp<mini){
     mini=temp;
   }
   
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(6, 0);
  // print the number of seconds since reset:
  lcd.print(temp);
   lcd.write(0); 
  lcd.print("C");
  
  lcd.setCursor(0, 1);  
  lcd.print(maxi);
  lcd.setCursor(7, 1);
  lcd.print(mini);

 }

Alguna idea?

Gracias por vuestro tiempo.

madre mia, que parra tengo encima... sacndo de ahi las variables, haciendolas globales.

prueba iniciando las variables maxi y mini con un numero bajo y alto respectivamente para asegurarte de que cuando haga la comparación esta funcione.
añade algun serial print para ver que esta pasando

float temp;

float maxi = 0;
float mini = 999;

void setup(){
Serial.begin(9600);
}

void loop ()
{
byte direccion [8];

buscasensor (direccion);

temp = leeTemp (direccion); // Se hace la llamada a la funcion que lee la temperatura del sensor

if(temp>maxi){
Serial.println("nueva temperatura maxima");
maxi=temp;
}

if(temp<mini){
Serial.println("nueva temperatura minima");
mini=temp;
}

// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(6, 0);
// print the number of seconds since reset:
lcd.print(temp);
lcd.write(0);
lcd.print("C");

lcd.setCursor(0, 1);
lcd.print(maxi);
lcd.setCursor(7, 1);
lcd.print(mini);

}

aunque creo que tu problema es que al definir las variables en el bucle loop, cada vez que se inicia las vuelve a crear y esto elimina el valor que tenias guardado. por eso lo he sacado fuera del loop

Si, como digo en el anterior mensaje era eso, las saque fuera y funciona de maravilla. Tambien hice lo que comentas, de inicializarlas con un numero alto y bajo.

Saludos!