Controllo della soglia di temperatura con LM35

Transcript

Controllo della soglia di temperatura con LM35
Scheda di laboratorio di Sistemi – autore Prof. Aniello Celentano – anno scolastico 2016/2017
Controllo della soglia di temperatura con LM35
Si vuole realizzare un controllo di temperatura facendo uso dell’integrato-sensore LM35. In
particolar modo si vuole che un LED si accenda quando la temperatura supera la soglia dei 50 °C.
Analizziamo il circuito proposto di seguito.
Il sensore di temperatura LM35, dotato del diodo di
protezione, invia il segnale nell’ingresso analogico
della piattaforma programmabile Arduino, ingresso
A0. Supponendo che la massima tensione che
vogliamo monitorare sia di 100°C, la massima tensione
che può arrivare sull’ingresso A0 è di 1 Volt. Ciò
comporta che dobbiamo impostare una tensione di 1
Volt sull’ingresso AREF della scheda Arduino. Ciò
viene realizzato con il trimmer da 5 K il cui cursore
controlla direttamente l’ingresso AREF.
Il PIN 5, impostato come Output digitale, controlla la
luminosità del LED.
Vediamo il programma da realizzare con l’IDE di Arduino.
/*
Programma per il controllo della temperatura.
Programma verificato nella classe 5B a.s. 2016/2017
*/
intTempSoglia = 50
intNSoglia ;
intTemp ;
bytePinLED = 7 ;
;
//
//
//
//
Soglia da monitorare, 50 °C
Conversione dell'ADC della temp. di soglia
Temperatura letta da Arduino
Pin che controlla il LED
void setup()
{
pinMode(PinLED , OUTPUT ) ;
analogReference( EXTERNAL ) ;
// Configurail PIN 5 come OUTPUT digitale
// Imposta la max tensione analogica la
// tensione impostata sull'ingresso AREF
NSoglia = ((float)TempSoglia/100) * 1024 ; // Calcola la temperatura di soglia in
// numero intero a 10 bit (valore dell'ADC)
digitalWrite(PinLED,HIGH);
delay(2000);
digitalWrite(PinLED,LOW);
}
voidloop()
{
Temp = analogRead( A0 ) ;
if( Temp>NSoglia )
digitalWrite(PinLED , HIGH ) ;
else
digitalWrite(PinLED , LOW ) ;
delay(50) ;
}
// Legge la temperatura convertira dall'ADC
// Esegue il controllo sulla soglia TempSoglia
// Impostail LED in ON
//
// Impostail LED in OFF
// Spreca un poco di tempo per l'ADC