Come collegare un termistore ad Arduino

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).

Come funziona termistore PTC / NTC Arduino, datasheet
Come funziona termistore PTC / NTC di Arduino, datasheet

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

Collegamento termistore 3950 ntc ad Arduino Uno
Collegamento termistore 100 kOhm 3950 ntc ad Arduino Uno

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:



  1. la resistenza e la resistenza del termistore devono essere specificate nel codice;
  2. porta seriale IDE visualizzerà la resistenza del termistore ntc 3950 e la temperatura ambiente.

Como utilizzare termistore e LED con Arduino

Como utilizzare termistore NPN / PTC Arduino Uno
Como utilizzare termistore NPN / PTC Arduino Uno

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:

  1. 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.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.