Sei sulla pagina 1di 11

RELAZIONE DI LABORATORIO: Lettura della temperatura tramite sensore LM35

Cognome: Morzenti
Nome: Nicola
Classe: 4D

TITOLO
Lettura della temperatura tramite sensore LM35 e microcontrollore Arduino.

INTRODUZIONE E PRESENTAZIONE DELL'ESPERIENZA

La temperatura è una delle grandezze più rilevanti non solo nel campo dell’automazione e dell’elettronica,
ma anche in molti altri campi, come meccanica e informatica, influenzando direttamente l'efficienza
energetica negli ambienti domestici e industriali. In questo contesto, il nostro progetto farà uso del
microcontrollore Arduino e del sensore di temperatura LM35 per realizzare un sistema di rilevamento
termico rudimentale. Questo progetto offre l'opportunità di acquisire competenze fondamentali
nell'elettronica e nell'automazione e di comprendere il funzionamento di un dispositivo che può avere
applicazioni reali significative.

Analizzeremo non solo il lato teorico e pratico, ma anche la sua rilevanza nel contesto attuale, dove il
monitoraggio ambientale e il controllo sono diventati parte integrante della vita quotidiana e delle
applicazioni industriali.

DESCRIZIONE TEORICA
Come prima cosa, ecco presentati in breve la scheda a microprocessore Arduino e il sensore di temperatura.

2 3

1 4

Scheda
Arduino 1
Uno 0
9
5

7 6
L’immagine precedente è la rappresentazione della scheda hardware Arduino UNO. Andremo ora, in modo
sommario e generale, a descrivere le componentistiche hardware della scheda.
1  Power USB

Tramite questa porta, è possibile collegare la scheda ad un computer dotato di porta USB, per alimentare la
scheda e per fornirle informazioni di programmazione.

2  Reset Arduino

Con questo pulsante è possibile ripristinare la scheda, e avviare il programma dall’inizio.

3  1/0 digitale

Questi pin possono essere configurati per funzionare come pin digitali di ingresso (1 o 0) o come pin digitali
di uscita.

4  Led di alimentazione

Questo led segnala una avvenuta alimentazione della scheda. Nel caso di mancata accensione, ciò starebbe
a significare un guasto o un’erronea connessione.

5  Microcontrollore principale

È il vero e proprio cervello della nostra scheda.

6  Pin analogici

La scheda Arduino possiede anche dei pin di ingresso analogici. Possono infatti leggere il valore di un’umidità
per poi convertirla in segnale digitale.

7  Pin

Tra questa serie di pin sono presenti quello corrispondente a 3,3V, 5V e la GND.

8  Alimentatore da Jack

La scheda Arduino possiede anche un ingresso apposito per i Jack, con dispositivi di alimentazione DC.

9  Regolatore di tensione

La funzione del regolatore di tensione consiste nel controllare la tensione fornita alla scheda e stabilizzare le
tensioni utilizzate dal processore e da altri elementi.

10  Oscillatore di cristallo

Questo tipo di componente, di solito al quarzo, aiuta Arduino a gestire i problemi legati al tempo e alla
frequenza. La scheda lavora a 16 MHz.
Il piano software della scheda è essenziale per l'istruzione e il funzionamento della scheda. Inizieremo con
un abbozzo generale, uno scheletro di programma, per poi esaminare in dettaglio le funzioni utilizzate nel
nostro codice.

Un programma wiring, basato su C e C++, è diviso in tre parti fondamentali, separato da due dichiarazioni:
void setup() e void loop(). La struttura standard di un programma comprende:

1. Dichiarazioni Preliminari: Questa sezione è dedicata alle librerie, alle variabili e alle costanti
necessarie per il programma.

2. Setup: La seconda parte, setup(), viene eseguita solo all'avvio del programma. Qui vengono
dichiarate le porte di input/output e possono essere incluse istruzioni iniziali aggiuntive.

3. Loop: La terza parte, loop(), è il cuore del programma. Questa sezione viene eseguita in modo ciclico
fino a quando l'alimentazione viene interrotta o il pulsante di reset viene premuto.

Sono di seguito descritti i comandi alla programmazione di Arduino da noi utilizzati in questa esperienza.

Sintassi ed ortografia:

;  indica la terminazione di una qualsiasi comando

() [] {}  le parentesi tonde e quadre delimitano gli operatori di un’istruzione, mentre le parentesi graffe
delimitano una serie di istruzioni riconducibili ad una condizione

Le variabili

Tramite queste Arduino memorizza i dati necessari al funzionamento del programma. Esistono diverse
tipologie di variabili, ma le più comuni sono:

int  usa 2 byte di memoria e può contenere un numero compreso tra -32768 e 32767

float  può memorizzare numeri con la virgola. Utilizza 4 bytes

Le istruzioni di controllo

If… else…  permette di prendere delle decisioni. L’istruzione if deve essere seguita da una condizione
racchiusa parentesi e da una o più istruzioni racchiuse tra parentesi graffe. Se la condizione è vera verranno
eseguite le istruzioni contenute tra parentesi graffe mentre se la condizione è falsa verranno eseguite le
istruzioni (sempre tra parentesi graffe) contenute immediatamente dopo la parola chiave else. In entrambi i
casi verranno poi eseguite le istruzioni successive alla fine delle istruzioni dipendenti dalla else. È possibile
usare l’istruzione if anche senza la parola chiave else. In quest’ultimo caso se la condizione è vera verranno
eseguite le istruzioni racchiuse tra le parentesi graffe che seguono la if, se invece è falsa e si passerà
direttamente alle istruzioni successive alla parentesi graffa di chiusura

Funzioni input e output e funzioni di tempo

Servono alla gestione delle porte Arduino. Si distinguono in:

pinMode(porta, utilizzo);  questa istruzione è utilizzata per configurare una delle porte digitali; nella
variabile porta deve essere inserito il numero della porta digitale (da 0 a 13) che si intende definire mentre
in utilizzo deve essere indicato il tipo di utilizzo (INPUT oppure OUTPUT). Ad esempio:

pinMode (13, INPUT); configura la porta digitale 13 come una porta di INPUT
digitalWrite(porta, valore);  attiva (HIGH) o disattiva (LOW) una porta digitale di OUTPUT. L’attivazione
implica che la porta in oggetto venga alimentata con una tensione di 5 volt mentre la disattivazione implica
che attraverso la porta non circoli alcuna tensione. Ad esempio:

digitalWrite (7, HIGH); attiva il componente collegato alla porta digitale 7.

variabile = digitalRead(numero della porta);  rileva lo stato di una porta digitale di INPUT. Inserisce il valore
1 (HIGH) in variabile se sulla porta rileva una tensione superiore a 3 volt, inserisce 0 (LOW) se rileva una
tensione inferiore a 1,5 volt e lascia inalterato il valore di variabile se rileva una tensione compresa tra 1,5 e
3 volt. Ad esempio:

val=digitalRead (7); rileva la tensione fornita dal sensore collegato alla porta 7

delay(pausa);  Mette in pausa il programma per un numero di millisecondi specificato in pausa. Ad


esempio:

delay (1000); interrompe per un secondo (1000 millisecondi) l’esecuzione del programma.

Si utilizza #define per creare una sorta di sostituzione di testo. Ad esempio, assegnando A0 alla parola
SENSORE_PIN nel nostro codice, ogni volta che Arduino incontrerà questa parola capirà che equivarrà ad A0.

Infine, Serial.begin(9600) e Serial.println() servono rispettivamente ad attivare il monitor seriale e a stampare


a video una variabile o una parola, andando poi a capo.

Il sensore di temperatura LM35 è un dispositivo a


semiconduttore ampiamente utilizzato per
Sensore di temperatura
LM35 misurare la temperatura in una varietà di
applicazioni elettroniche. È comunemente
impiegato in progetti di elettronica ed
automazione.

Il sensore, offre una precisione nella misurazione


della temperatura tipicamente con una deviazione
massima di ±0,5 gradi Celsius.
Può misurare temperature comprese tra -55°C e
+150°C, coprendo una vasta gamma di applicazioni.
Richiede un'energia di alimentazione compresa
tipicamente tra 4V e 30V.

L’LM35 sfrutta il principio della variazione della


tensione di uscita in risposta alle variazioni di
temperatura. La tensione di uscita del sensore è
proporzionale alla temperatura in Celsius, con una
pendenza di 10 mV per grado Celsius. Ad esempio,
se il sensore registra una temperatura di 25°C, la tensione di uscita sarà di 250 mV.
È composto da:
Alimentazione: Il sensore LM35 viene alimentato da una sorgente di tensione continua.
Sensore Interno: All'interno del sensore, c'è un riferimento di tensione, un amplificatore operazionale e un
dispositivo di generazione di corrente. Questi componenti lavorano insieme per generare una tensione di
uscita proporzionale alla temperatura rilevata.

Tensione di Uscita: La tensione di uscita del sensore può essere letta da un microcontrollore o da altri circuiti
elettronici per determinare la temperatura corrente.

Questo tipo di sensore, può essere usato per:

Termostati: Il sensore LM35 può essere utilizzato nei termostati per il controllo della temperatura in sistemi
di riscaldamento, condizionamento dell'aria e dispositivi di controllo climatico.

Monitoraggio Ambientale: Può essere impiegato in applicazioni di monitoraggio ambientale per misurare la
temperatura in laboratori, magazzini, camere frigorifere.

Elettronica di Consumo: Il sensore può essere incorporato in elettronica di consumo come termostati digitali,
termometri digitali e regolatori di temperatura.
CODICE
Viene di seguito presentato e spiegato il codice utilizzato nel progetto.

Definite tre costanti. Queste costanti


rappresentano rispettivamente il pin
analogico a cui è collegato il sensore di
temperatura e i pin digitali utilizzati per
controllare la caldaia (LED giallo) e il
condizionatore (LED verde).

Vengono dichiarate
quattro variabili per
memorizzare la lettura
del sensore, per
memorizzare il valore
della temperatura, per
tenere traccia dello
stato della “caldaia” e
del “condizionatore”.

Vengono inizializzate le porte


dei pin di output per la “caldaia”
e il “condizionatore”.
Inizialmente, entrambi vengono
impostati su stato "0" (spenti).
Viene anche inizializzato il
monitor seriale.

Il sensore di temperatura
viene letto e viene
convertito in temperatura
in gradi Celsius. In base
alla temperatura letta, il
codice decide se
accendere il
“condizionatore” o la
“caldaia”. Viene stampata
la temperatura sul
monitor seriale. Il
programma attende per
500 millisecondi prima di
ripetere la lettura.
“Caldaia” e “condizionatore” rappresentano rispettivamente il LED giallo ed il LED verde.

La riga di codice temperatura = (valoreSensore * 500.0) / 1023.0; converte la lettura del sensore (in scala da
0 a 1023) in una temperatura in gradi Celsius. La costante 500.0 rappresenta la scala di temperatura (10 mV
per grado Celsius) e 1023.0 è il massimo valore di lettura del sensore. Il risultato è la temperatura in gradi
Celsius
ELENCO COMPONENTI e STRUMENTI
nome quantità
Scheda Arduino UNO 1
Resistenza 2, 330 ohm / 1, 1 kohm
LED giallo 1, tensione nominale massima 1,9V

LED verde 1, tensione nominale massima 2V

Breadboard 1

Sensore di temperatura LM35 1

IMMAGINI DEL PROGETTO

schema di montaggio su TinkerCad

Simulazione su tinkerCad
Stato: spento

Simulazione su tinkerCad
Stato: temperatura < 24.9° C
Simulazione su tinkerCad
Stato: temperatura > 24.9° C

schema di montaggio reale

Progetto
Stato: spento
Progetto
Stato: temperatura < 24.9° C

Progetto
Stato: temperatura > 24.9° C

Sia nella simulazione su tinkerCad che nella vita reale, il LED verde si accende con una temperatura inferiore
a 24,9 gradi Celsius; viceversa, il LED giallo con una temperatura superiore a 24.9 gradi Celsius.
schema funzionale

Schema funzionale del


circuito

SCHEMI
Nel programma gratuito rilasciato da Arduino, tramite il quale è possibile far comunicare la scheda UNO con
l’esterno, è presente una funzione che rappresenta sotto forma di grafico l’output prestabilito. Di seguito
sono presentate la temperatura in aumento e in discesa rilevate dal sensore LM35.

temperatura in salita
temperatura in discesa

Per simulare un aumento di temperatura abbiamo sfruttato il nostro calore corporeo.

CONCLUSIONI, NOTE PERSONALI E SVILUPPI FUTURI

In conclusione, il progetto descritto offre un esempio concreto di come utilizzare Arduino e il sensore di
temperatura LM35 per creare un sistema di controllo termico. Attraverso il codice fornito, il
microcontrollore è in grado di rilevare la temperatura ambientale e prendere decisioni di controllo.

La versatilità di questo progetto consente di adattarlo a diverse esigenze, come il controllo automatico del
clima in un'abitazione o il monitoraggio delle condizioni ambientali.

Inoltre, questo progetto può servire come punto di partenza per ulteriori sviluppi e miglioramenti, come
l'implementazione di funzionalità aggiuntive o l'uso di algoritmi più complessi per il controllo termico.

L’LM35 è un sensore di piccole dimensioni: in nessun caso, sia per la sua non assoluta precisione, sia per la
sua scarsa resistenza, potrebbe essere usato nel campo dell’automazione a livello industriale. Nonostante
questo, proprio per le sue piccole dimensioni può essere facilmente introdotto in piccoli misuratori di
temperatura, ed essere utilizzato con molta semplicità ed efficienza.

Potrebbero piacerti anche