Controllo di temperatura con scheda Arduino

Schema elettrico

Schema a blocchi controllo

Software

const float Rif=40.0;  //Riferimento di temperatura
const float KT=1/0.01; //K di conversione da tensione a temperatura
const float KV=5/1023; //K di conversione da valore ADC a tensione;
int   ValADC;          //Valore a ADC corrispondente a tensione applicata all'ingresso 
int   V;               //Valore si tensione
float Retro;           //Temperatura misurata
float Err;             //Errore


void setup() {
  // put your setup code here, to run once:
  pinMode(3,OUTPUT);    //Inizializza pin 3 come uscita diglitale 
  digitalWrite(3,LOW);  //Mette a 0 l'uscita (riscaldamento spento)
  Serial.begin(9600);   //Inizializza la porta seriale
}

void loop() {
  ValADC=analogRead(A0); //Legge ADC
  V=ValADC*KV;           //Trasforma in tensione
  Retro=V*KT;            //Trasforma in temeperatura
  Err=Rif-Retro;         //Elabora errore
  if (Err>0)             //Prende la decisione se accendere o spegnere il riscaldatore.
    digitalWrite(3,HIGH);
  else
    digitalWrite(3,LOW);
    
  //-----Monitoraggio sistema----------------------------
  Serial.print("Rif:");  
  Serial.print(Rif);
  Serial.print(" Retro:");  
  Serial.print(Retro);
  Serial.print(" Err:");  
  Serial.print(Err);
  Serial.print(" Out:");
  Serial.println(digitalRead(3));
}