lm35 controllo relay (on/off) tramite libreria pid (questa sconosciuta)

Salve a tutti,
vorrei utilizzare la libreria pid di arduino per pilotare un relay (non ssr), in modo da poter rimanere in un contesto di temperatura controllata, ai capi del relay ho una resistenza di un forno.
Secondo voi ho sbagliato qualcosa?

#include <PID_v1.h>
#define RelayPin 6

//Define Variables we'll be connecting to
double Setpoint, Input, Output;

//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);

int WindowSize = 5000;
unsigned long windowStartTime;
void setup()
{
windowStartTime = millis();

//initialize the variables we're linked to
Setpoint = 50;
Serial.begin(9600);
//tell the PID to range between 0 and the full window size
myPID.SetOutputLimits(0, WindowSize);

//turn the PID on
myPID.SetMode(AUTOMATIC);
}
double LetturaTemp()
{

float lettura = 0; // impostazione valore iniziale della variabile
int media = 30; //n° letture per calcolo media
lettura = 0; //azzera il totalizzatore
// for (int i = 0; i < media; i++) {
lettura += analogRead(0); //totalizza tutti i valori letti dall’ADC
// }
//lettura = lettura / media; //calcolo del valore medio di lettura
//Serial.print(lettura); //lettura valore ADC
// Serial.print(" --> ");
return (double)((500*lettura)/1023.0);

}
void loop()
{
Input = LetturaTemp();
Serial.println("Temp ");
Serial.print(Input);
myPID.Compute();

/************************************************

  • turn the output pin on/off based on pid output
    ************************************************/
    unsigned long now = millis();
    if(now - windowStartTime>WindowSize)
    { //time to shift the Relay Window
    windowStartTime += WindowSize;
    }
    if(Output > now - windowStartTime){
    Serial.println("SPENTO");
    digitalWrite(RelayPin,HIGH);

}
else
{ Serial.println("ACCESO");
digitalWrite(RelayPin,LOW);
}
}

ops ho invertito i println di acceso e off.
ma secondo voi questo codice funziona?

Leggi il punto 7 del regolamento.