[RISOLTO]mantenere temperatura per tot tempo???

grazie mille del consiglio oggi pomeriggio mi sono applicato e sono giunto a questa conclusione che funziona molto bene ho tre step che vengono mantenuti tutti per un minuto progressivamente proprio quello che mi serviva(poi basta cambiare i valori e cambi le durate dei step e le temperature) fin qua tutto bene, ho un piccolo problema,, dovendo usare questo codice per gestire un fornello elettrico con un relè ho notato sul serial monitor che va on e off molte volte quando si trovo a cavallo della temperatura settata a causa dell'instabilità della lettura massacrandomi il relè e il fornello questo succede perchè il ciclo gira ad una velocità assurda e di solito metteve un delay di un secondo alla fine del programma ma in questo caso non riesco a fare una lettura al secondo senza sballare tutti i tempi.... come posso fare? vorrei ottenere i stessi step di tempo ma con letture del sensore una volta al secondo grazie 8) 8) 8)

unsigned long int time;
unsigned long int primostep;
unsigned long int secondostep;
unsigned long int terzostep;
unsigned long int fine;
int tempC;
int rele=7;

void setup(){
  Serial.begin(9600);
time=millis();
primostep=millis();
secondostep=millis();
terzostep=millis();
fine=millis();
}

void loop(){
pinMode(rele, OUTPUT);
time=millis();
tempC = analogRead(A0);
tempC = (5.0 * tempC * 100.0)/1024.0;

if(time>primostep+5000&&time<secondostep+120000){
  if(tempC>20){
    digitalWrite(rele, LOW);
    Serial.println(tempC);
    Serial.print("primostepoff");
  }
    else{
    digitalWrite(rele, HIGH);
    Serial.println(tempC);
    Serial.print("primostepon");
  }
}
if(time>secondostep+120000&&time<terzostep+180000){
  if(tempC>20){
    digitalWrite(rele, LOW);
    Serial.println(tempC);
    Serial.print("secondostepoff");
  }
    else{
    digitalWrite(rele, HIGH);
    Serial.println(tempC);
    Serial.print("secondostepon");
  }
}

if(time>terzostep+180000&&time<fine+240000){
  if(tempC>20){
    digitalWrite(rele, LOW);
    Serial.println(tempC);
    Serial.print("terzostepoff");
  }
    else{
    digitalWrite(rele, HIGH);
    Serial.println(tempC);
    Serial.print("terzostepon");
  }
}
if(time>fine+240000){
  digitalWrite(rele, LOW);
}
}