CONTENUTO ►
Il collegamento di un termistore ad Arduino consente di misurare la temperatura ambiente con una certa precisione. Consideriamo il collegamento dell’elemento a semiconduttore al microcontrollore Arduino, comprenderemo il programma per la calibrazione del sensore di temperatura basato su un termistore ntc da 100 kOhm. Assembliamo un circuito sulla scheda Arduino Uno con accensione automatica dei LED in base alla temperatura ambiente.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- termistore 100 kOhm 3950 ntc
- LED e resistenza
- breadboard
- cavi di collegamento
Come funziona termistore PTC / NTC Arduino (datasheet)
Il termistore è un elemento semiconduttore la cui resistenza elettrica varia con la temperatura. Gli elementi sono costituiti da materiali con un elevato coefficiente di resistenza alla temperatura. In base al tipo di dipendenza della resistenza dalla temperatura, si distinguono termistori con coefficiente di resistenza negativo NTC (Negative Temperature Coefficient) e coefficiente di resistenza positivo PTC (Positive Temperature Coefficient).
I termistori di tipo NTC hanno una resistenza che diminuisce con l’aumentare della temperatura, mentre i termistori PTC hanno una resistenza che aumenta con l’aumentare della temperatura. La resistenza nominale dei termistori (dichiarata dal produttore) corrisponde alla resistenza di un semiconduttore a una temperatura ambiente di 25 C°. Come il sensore di temperatura LM35, il termistore può essere calibrato utilizzando la formula di Steinhart-Hart.
Collegamento termistore NPN / PTC ad Arduino
Per misurare la temperatura con il microcontrollore Arduino, è necessario conoscere la resistenza nominale del termistore (noi abbiamo usato 100 kOhm), la resistenza del resistore (noi abbiamo usato 200 kOhm) e il coefficiente NTC del termistore, che nel nostro esempio è 3950. Dopo aver assemblato il circuito, specificare i parametri richiesti nel software e caricare il codice nella scheda. Il monitor di Arduino IDE dovrebbe visualizzare la temperatura dell’aria.
Programma per misure di temperaura con termistore
#define B 3950 // ntc constant #define RESISTOR 200000 // resistenza 200 kOhm #define THERMISTOR 100000 // resistenza del termistore, 100 kOhm #define NOMINAL 25 // temperatura nominale #define sensor A1 void setup() { Serial.begin(9600); pinMode(sensor, INPUT); } void loop() { int t = analogRead(sensor); float tr = 1023.0 / t - 1; tr = RESISTOR / tr; Serial.print("R="); Serial.print(tr); Serial.print(", t="); float steinhart; steinhart = tr / THERMISTOR; steinhart = log(steinhart); steinhart /= B; steinhart += 1.0 / (NOMINAL + 273.15); steinhart = 1.0 / steinhart; steinhart -= 273.15; Serial.println(steinhart); delay(100); }
Spiegazione del codice per misurazione di temperatura con un termistore:
- la resistenza e la resistenza del termistore devono essere specificate nel codice;
- porta seriale IDE visualizzerà la resistenza del termistore ntc 3950 e la temperatura ambiente.
Como utilizzare termistore e LED con Arduino
Programma di accensione LED in funzione della temperatura
#define B 3950 // ntc constant #define RESISTOR 200000 // resistenza 200 kOhm #define THERMISTOR 100000 // resistenza del termistore, 100 kOhm #define NOMINAL 25 // temperatura nominale #define sensor A1 void setup() { Serial.begin(9600); pinMode(sensor, INPUT); pinMode(10, OUTPUT); pinMode(12, OUTPUT); } void loop() { int t = analogRead(sensor); float tr = 1023.0 / t - 1; tr = RESISTOR / tr; Serial.print("R="); Serial.print(tr); Serial.print(", t="); float steinhart; steinhart = tr / THERMISTOR; steinhart = log(steinhart); steinhart /= B; steinhart += 1.0 / (NOMINAL + 273.15); steinhart = 1.0 / steinhart; steinhart -= 273.15; Serial.println(steinhart); if (steinhart < 24) { digitalWrite(10, HIGH); digitalWrite(12, LOW); } if (steinhart >= 24) { digitalWrite(10, LOW); digitalWrite(12, HIGH); } delay(100); }
Spiegazione del codice per accensione LED in funzione della temperatura:
- a seconda della temperatura, si accende il primo o il secondo LED.
Conclusione. L’uso di un termistore (thermistor) è uno dei modi più semplici ed economici per misurare la temperatura utilizzando un microcontrollore Arduino. Quando la temperatura ambientale cambia, la resistenza del termistore cambia, quindi il suo uso è giustificato quando non ci sono temperature estreme e non c’è un’importanza critica nell’accuratezza delle misure.
Lascia un commento