Il modulo KY-013 Temperature sensor module fa parte della serie “37 In 1 Sensor Module Board Set Kit For Arduino”, si tratta di un sensore di temperatura analogico basato su termistore NTC e da un resistore da 10 kΩ. Nella serie esiste anche il modulo KY-028 Temperature sensor module che utilizza lo stesso tipo di sensore.
Indice
Cosa sono i termistori
Il sensore utilizzato suo modulo è un termistore, la sua definizione riportata su Wikipedia è:
Un termistore, nell’elettronica ed in generale nell’automazione, è un resistore il cui valore di resistenza varia in maniera significativa con la temperatura. Il termine deriva dalla combinazione delle parole termico e resistore. Il principio di funzionamento si basa sulla dipendenza della resistenza del materiale dalla temperatura.
Le NTC appartengono al tipo di resistenza che presentano una resistenza variabile in funzione della temperatura, ne esistono di due tipi le NTC e le PTC.
Resistenza NTC
Viene comunemente definito TERMISTORE oppure anche NTC (Negative Temperature Coefficient).
La sua resistenza diminuisce all’aumentare della temperatura. Questi componenti sono costruiti con ossidi di metalli quali Cromo (Cr), Ferro (Fe), Cobalto (Co), Nichel (Ni), Manganese (Mn) miscelati da un legante plastico. Si possono trovano in commercio a forma di goccia, a disco, a sbarra.
Resistenza PTC
I resistori PTC (Positive Temperature Coefficient) a differenza delle NTC variano il valore della resistenza con l’aumentare all’aumentare della temperatura.
Come detto quella utilizzata sul modulo KY-13 è una NTC che può misurare una temperatura da circa -55 a +125 °C con una tolleranza di ± 0.5 gradi.
Il modulo KY-013 Analog temperature sensor module
Caratteristiche:
- Sensore: NTC 10kΩ
- Resistore di pull-up: 10 kΩ
- Tensione di funzionamento: 5 V
- Gamma di misurazione della temperatura : -55 ° C a 125 °C]
- Precisione di misura: ± 0,5 ° C
- Connessione: 3 pins: (+) 5V , (-) GND, (S) analogico
- Dimensioni: 18,5 mm x 15 mm
Circuito elettrico del modulo
Il circuito elettrico del modulo KY-013 è molto semplice in quanto è formato solamente dal partitore in cui troviamo resistenza R1 da 10kΩ e la resistenza variabile R2 una NTC da 10 KΩ (vedere datasheet).
Sotto è riportato lo schema elettrico del modulo realizzato con EasyEDA
Alternativa al modulo KY-013
Se non si possiede è possibile utilizzare componenti discreti per realizzare lo stesso circuito.
In questo i componenti saranno:
- 1 Termistore con rivestimento in resina epossidica; resistenza nominale 10 kΩ; costante B (~7%) 4100°K; costante di dissipazione termica 6 mW/°C; corrente massima 30 mA; costante di tempo termica 15 s; dimensioni Ø 5 mm. ( codice 8220-NTC10K0 presso Futura Elettronica)
- 1 resistenza 10 kΩ 1/4 W 5% (Marrone, Nero, Arancio, oro)
Schema di collegamento
Come ricavare il valore di temperatura
La variazione di resistenza può essere approssimata matematicamente utilizzando l’equazione di Steinhart-Hart per ricavare la temperatura precisa del termistore.
Questa convertita in una curva lineare e il coefficiente di temperatura (dipendenza della variazione di resistenza dalla variazione di temperatura) determinato.
Utilizzando questo, è quindi possibile calcolare la temperatura attuale.
Il valore di resistenza è determinata con l’ausilio di un partitore di tensione, in cui una tensione nota è suddivisa su una resistenza nota (10 kΩ) e una (variabile, la nostra NTC) sconosciuta.
Utilizzando questa tensione misurata, è quindi possibile calcolare la resistenza. Il calcolo esatto è incluso negli esempi di codice seguenti.
Il valore di tensione deve essere letto tramite un ingresso Analogico collegato al pin S del modulo
NOTA: per un corretto funzionamento, nonostante la serigrafia riportata sul modulo commerciale, il pin centrale deve essere collegato a GND, mentre quello con il segno “-” deve essere collegato a VCC (+5V).
In caso contrario all’aumentare delle temperatura, sarà letta una diminuzione, in pratica in valori in uscita saranno errati.
Altro modulo con NTC – KY-028
Nel kit 37 In 1 Sensor Module Board Set Kit For Arduino è presente un altro modulo che utilizza lo stesso tipo di sensore NTC del modulo KY-013 Temperature sensor module , si tratta del KY-028 Temperature sensor module.
Dove trovare il modulo KY-013
Il modulo sensore KY-013 Temperature sensor module può essere trovato all’interno del kit 37 In 1 Sensor Module Board Set Kit For Arduino può essere trovato in rete presso questi due siti.
Sito Homotix codice prodotto HMTKITS
Sito Futura elettronica codice prodotto 1606-SENSORKIT37
Colleghiamo il modulo ad Arduino
Vediamo come collegare il modulo alla scheda Arduino. Per quanto riguarda il display occorrerà inserire anche un trimmer dal valore di 10 kΩ per la regolazione del contrasto del display.
Materiale necessario
Schema dei collegamenti
Nella foto è visibile un piccolo PCB che semplifica il collegamento del display, per maggiori informazioni vedere l’articolo
Collegamento del modulo effettuato direttamente sul connettore Analog IN
Foto di un test inviate da un lettore
Programma di test del sensore
Il seguente sketch di Arduino utilizza la libreria LiquidCrystal, che consente la comunicazione con display alfanumerici a cristalli liquidi (LCD) basati sul chipset Hitachi HD44780 (o compatibile), che si trova sulla maggior parte degli LCD basati su testo. La libreria funziona in modalità a 4 o 8 bit (cioè utilizzando 4 o 8 linee di dati oltre a rs, enable e, opzionalmente, le linee di controllo rw).
Per caricare la libreria aprire il menù Sketch, #include libreria, “Gestore Librerie”
e inserire nel campo ricerca “LiquidCrystal” e quando apparirà basterà premere il tasto Installa,
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria
Nota
Una particolarità del programma è poi quella di utilizzare due pin Analogici (A2 e A2) con pin digitali per alimentare il modulo sensore. in questo modo non sarà necessario utilizzare dei cavi a basterà inserire il modulo sensore direttamente sul connettore di Arduino per effettuare il suo corretto collegamento.
Vedere articolo Come usare pin analogici di Arduino come digitali
Il valore della temperatura è ricavato applicano l’equazione di Steinhart-Hart per ricavare la temperatura precisa del termistore.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#include <LiquidCrystal.h> #define ThermistorPin A0 // seleziona il pin per il sensore #define VCC 15 // pin A1 analogico per alimentare sensore #define GND 16 // pin A2 analogico usato come GND int Vo; float R1 = 10000; // value of R1 sul modulo float logR2, R2, T; float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //steinhart-hart valore del coefficiente per il termistore LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { Serial.begin(9600); lcd.begin(16, 2); //Imposta di display 16 caratteri x 2 righe pinMode(VCC, OUTPUT); // pin A1 analogico per alimentare sensore digitalWrite(VCC, HIGH); //il pin viene portato a +5v pinMode(GND, OUTPUT); // pin A2 analogico usato come GND digitalWrite(GND, LOW); //il pin viene portato a GND } void loop() { Vo = analogRead(ThermistorPin); R2 = R1 * (1023.0 / (float)Vo - 1.0); //calcola la resistenza sul termistore logR2 = log(R2); T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2)); // temperature in Kelvin T = T - 273.15; //converte il valore in gradi celsius lcd.setCursor(0, 0); lcd.print("Temperatura"); lcd.setCursor(0, 1); lcd.print(T, 1); lcd.print(" "); lcd.print((char)223); //mostra il carattere gradi lcd.print("C"); delay(500); // pausa tra le lettura lcd.clear(); } |
La foto mostra il valore i temperatura letta dal sensore
Altri utilizzi del modulo
Sotto, un’atra versione di gestione del modulo con lettura su display OLED