Registro de valores max. y min de sensor

Buenas tarde, tengo una duda sobre como registrar el dato mínimo y máximo que se obtiene de un sensor.
Por ejemplo si en 10 lecturas el menor es 6 y el mayor es 20 que se registre ese hasta que se detecte uno menor.
Gracias de antemano por la atención.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcdA(0x27,20,4);  // LCD 0x27 
LiquidCrystal_I2C lcdB(0x26,16,2);  // LCD 0x27 

int tempC ;
int pin = A0;
int SHMin = tempC ;
int SHMax ;

void setup() {
  lcdA.init();
  lcdB.init();                         
  lcdA.backlight();                  
  lcdB.backlight();
  Serial.begin(9600);
  
}

void loop()
{
  tempC = analogRead(pin);
  tempC = (5.0 * tempC * 100.0)/1024.0;  
lcdA.setCursor(0, 0);
  lcdA.print(tempC);

  SHMin = tempC;
  if(tempC <= SHMin){
    SHMin = tempC;
    lcdB.setCursor(0, 0);
    lcdB.print(SHMin);
      delay(1000);
  }

  delay (1000);
}

Ese es el que utilizo esta incorrecto solo se actualiza igual no se quedas en el mínimo obtenido,solo para dar referencia a lo que busco.
Saludos

Aquí tienes el programa con unos cambios y el comentario del porqué en cada líneas cambiada.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcdA(0x27,20,4);  // LCD 0x27 
LiquidCrystal_I2C lcdB(0x26,16,2);  // LCD 0x27 

int tempC ;
int pin = A0;
int SHMin = 999 ; // <== Inicializar con un valor muy alto para asegurarnos que laprimera vez actualiza el mínimo
int SHMax = -999; // <== Inicializar con un valor muy bajo para asegurarnos que la primera vez actualiza el máximo

void setup() {
  lcdA.init();
  lcdB.init();                         
  lcdA.backlight();                  
  lcdB.backlight();
  Serial.begin(9600);
  
}

void loop()
{
  tempC = analogRead(pin);
  tempC = (5.0 * tempC * 100.0)/1024.0;  
lcdA.setCursor(0, 0);
  lcdA.print(tempC);

  // SHMin = tempC; <== Esta línea no ha de ir aquí. Hace que siempre el "mínimo" sea la temperatura actual.
  if(tempC <= SHMin){
    SHMin = tempC;
    lcdB.setCursor(0, 0);
    lcdB.print(SHMin);
      // delay(1000); <== no hace falta esperar, ya espera al final del loop()
  }

  delay (1000);
}

Creo que básicamente el problema lo tenías con la inicialización del mínimo, que creo que inicialmente lo tendrías a cero.

Aunque te falta el tratamiento del máximo, creo que con esto sabrás cómo hacerlo.

Ya me dirás si te ha funcionado. No lo he probado.

IgnoranteAbsoluto:
Ya me dirás si te ha funcionado. No lo he probado.

Hola que tal Ignorante Absoluto, lo eh cargado y si guarda un numero pero no se actualiza si se encuentra un numero menor.
y también se cambia si lee uno mayor lo cual no es lo que busco.
Gracias por la respuesta

¿Has hecho los cuatro cambios? ¿Incluído comentar o borrar esta línea que está antes del if?

  // SHMin = tempC; <== Esta línea no ha de ir aquí. Hace que siempre el "mínimo" sea la temperatura actual.

Disculpa era otro el error pero ya se soluciono.
Comparto el código SALUDOS MUCHAS GRACIAS.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcdA(0x27, 20, 4);
LiquidCrystal_I2C lcdB(0x26, 16, 2);

int tempC ;
int s;
int pin = A0;
int SHMin = 10000 ;
int SHMax = -10000;

void setup() {
  lcdA.init();
  lcdB.init();
  lcdA.backlight();
  lcdB.backlight();
  Serial.begin(9600);

}

void loop()
{
  s = analogRead(pin);
  tempC = (5.0 * s * 100.0) / 1024.0;
  lcdA.setCursor(0, 0);
  lcdA.print(tempC);

  if (tempC > SHMax) {
    SHMax = tempC;
    lcdB.setCursor(0, 1);
    lcdB.print(SHMax);
  }
  if (tempC < SHMin) {
    SHMin = tempC;
    lcdB.setCursor(0, 0);
    lcdB.print(SHMin);
  }
  delay (1000);
}