Termistor pro měření teploty s Arduinem

Termistor je jednoduchá součástka, která nám umožňuje měřit teplotu. A pro získání údajů o teplotě použijeme Arduino společně s LCD displejem na zobrazení výsledků. Tato sada nám pak může posloužit v projektech s domácí automatizací, meteostanicí či v ochraně zařízení před přehřátím.

Thermistor Interfacing with Arduino Uno to Measure Temperature

V tomto návodu si tedy ukážeme, jak termistor propojit s Arduinem a zobrazit měřenou teplotu na LCD displeji.

Seznam součástek:

  • Arduino deska (např. UNO)
  • NTC termistor 10k ohmů
  • 10k ohm rezistor
  • propojovací vodiče
  • nepájivé pole

Schéma zapojení

Using Thermistor with Arduino for Measuring Temperature setup

Změna teploty zachycená termistorem se projevuje jako změna hodnoty jeho odporu. V uvedeném schématu je tedy pro měření využitý analogový pin Arduina, na který je připojený termistor v odporovém děliči s normálním rezistorem o známé velikosti. Díky této kombinaci pak můžeme s dobrou přesností měřit teplotu, kdy započítáme jak použitý odporový dělič, tak známou Stein-Hartovu konstantu našeho termistoru.

Termistor

Termistor je odporová součástka, která je citlivá na okolní teplotu. K dostání jsou dva druhy termistorů: PTC (positive temperature co-efficient) a NTC (negative temperature co-efficient). My v tomto návodu použijeme NTC, kde z názvu vyplývá závislost odporu na teplotě – negativní závilost u NTC termistoru tedy znamená to, že při zvyšující se teplotě se snižuje odpor termistoru. A u termistoru PTC se děje opačný jev – při zvyšující teplotě se odpor zvyšuje.

Characterstic graph of NTC thermistorNTC thermistor 10k

Pro více informací ohledně přepočtu odporu a materiálové konstanty NTC termistoru si přečtěte původní článek, na který najdete odkaz na konci stránky.

Ukázkový kód

#include 
#include "LiquidCrystal.h"
LiquidCrystal lcd(44,46,40,52,50,48);
float A = 1.009249522e-03, B = 2.378405444e-04, C = 2.019202697e-07;
float T,logRt,Tf,Tc;
float Thermistor(int Vo) {
 logRt = log(10000.0*((1024.0/Vo-1))); 
 T = (1.0 / (A + B*logRt + C*logRt*logRt*logRt));  // We get the temperature value in Kelvin from this Stein-Hart equation
 Tc = T - 273.15;                     // Convert Kelvin to Celcius
 Tf = (Tc * 1.8) + 32.0;              // Convert Kelvin to Fahrenheit
 return T;
}

void setup(){
 lcd.begin(16,2);
 lcd.clear();
}

void loop() 
{
 lcd.setCursor(0,0);
  lcd.print("Temp:");
  lcd.print((Thermistor(analogRead(0))));
  lcd.print("k ");
 
 lcd.setCursor(0,1);
  lcd.print((Tc));
  lcd.print(" C ;");

 lcd.setCursor(9,1);
  lcd.print((Tf));
  lcd.print(" F");
 delay(800);
}

Video

Převzato a přeloženo z:
https://circuitdigest.com/microcontroller-projects/arduino-thermistor-interfacing-code-circuit

Arduino Uno, Mega, Senzory, Moduly za

VÝHODNOU CENU

Luboš