Gestione relè tramite termoresistore

Grazie mille per la risposta!!
Spero di aver capito quello che intendevi dire e quindi ho apportato delle modifiche allo sketch:

const byte LED1[]={ 9, 10, 11, 12 };
const int P1=2;                       //Pulsante cambio di stato
const int debaunceDelay=500;
const int PW=8;                       //Relè
const int THRS = 100;                 //valore termoresistore posizione Standby
const int THRL = 170;                 //valore termoresistore posizione Low
const int THRM = 180;                 //valore termoresistore posizione Medium
const int THRH = 190;                 //valore termoresistore posizione High
byte stato=1; 


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

  pinMode(LED1[0], OUTPUT); //led standby
  pinMode(LED1[1], OUTPUT); //led LOW
  pinMode(LED1[2], OUTPUT); //led MIDIUM
  pinMode(LED1[3], OUTPUT); //led HIGH    
  pinMode(P1, INPUT);       //Pulsante
  pinMode(PW, OUTPUT);      //Relè
}

void loop() {
   int v = analogRead(A0);
   Serial.println(v);
   
   
  if(digitalRead(P1))

  {

    if(stato<4) stato=stato+1;

    else stato=1;

  }
  
   
     
switch(stato)
{ case 1:
    digitalWrite(LED1[0],HIGH);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],LOW);
    digitalWrite(LED1[3],LOW);
    {
    if (v > THRS) digitalWrite(PW, HIGH); 
    else digitalWrite(PW, LOW);
    }    
    break;

    
  case 2:
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],HIGH);
    digitalWrite(LED1[2],LOW);
    digitalWrite(LED1[3],LOW);
    {
    if (v > THRL) digitalWrite(PW, HIGH);
    else digitalWrite(PW, LOW);   
    }    
    break;

    
  case 3:
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],HIGH);
    digitalWrite(LED1[3],LOW);
    {
    if (v > THRM) digitalWrite(PW, HIGH); 
    else digitalWrite(PW, LOW);
    }    
    break;

    
  case 4:
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],LOW);
    digitalWrite(LED1[3],HIGH);
    {
    if (v > THRH) digitalWrite(PW, HIGH);  
    else digitalWrite(PW, LOW);
    }
    
    
       
    break;
} 

  while (digitalRead(P1) == LOW)
  {
    delay(10);
  }

  delay(debaunceDelay);

}

Quello che adesso mi manda in bestia e che sto facendo un sacco di confusione con i delay e non riesco a dare una continuità cadenzata alla lettura della termoresistenza. Se apro il monitor seriale la lettura viene effettuata solo alla pressione del pulsante ed a una frequenza dettata dal delay.

Grazie