Как подключить термистор к Ардуино

 

Подключение термистора к Ардуино позволяет довольно точно измерять температуру окружающей среды. Рассмотрим подключение полупроводникового элемента к микроконтроллеру, разберем программу для калибровки датчика на основе ntc термистора 100 кОм и соберем схему на плате Arduino Uno с автоматическим включением светодиодов в зависимости от температуры воздуха в помещении.

Устройство и принцип работы термистора

График изменения сопротивления NTC / PTC термистора
График изменения сопротивления NTC / PTC термистора

Терморезистор (термистор) — это полупроводник, электрическое сопротивление которого изменяется в зависимости от температуры, изготавливаются из материалов с высоким температурным коэффициентом сопротивления. По типу зависимости сопротивления от температуры различают терморезисторы с отрицательным (NTC) и положительным (PTC) температурным коэффициентом сопротивления.

У термисторов NTC типа с ростом температуры происходит падение их сопротивления, а у PTC термисторов с ростом температуры сопротивление растет. Номинальное сопротивление термисторов (заявленное производителем) соответствует сопротивлению полупроводника при температуре 25 C°. Как и температурный сенсор LM35, термистор можно откалибровать, используя формулу Стейнхарта — Харта.

Подключение к Ардуино терморезистора NTC

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • термистор 100 кОм 3950 ntc;
  • светодиоды и резисторы;
  • макетная плата;
  • провода «папа-папа».
Схема подключения терморезистора к Ардуино
Подключение терморезистора 100 кОм 3950 ntc к Ардуино

При измерении температуры с помощью Ардуино следует знать номинальное сопротивление термистора (мы использовали 100 кОм), сопротивление резистора (в нашем примере 200 кОм) и коэффициент NTC терморезистора, который равен 3950. После сборки схемы, укажите в программе необходимые параметры и загрузите код в плату. На мониторе порта должна отображаться температура воздуха.

#define B 3950 // B коэффициент
#define RESISTOR 200000 // сопротивление резистора, 200 кОм
#define THERMISTOR 100000 // номинальное сопротивление термистора, 100 кОм
#define NOMINAL 25 // номинальная температура
 
#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);
}

Пояснения к коду:

  1. в программе следует указать сопротивление резистора и термистора;
  2. на мониторе порта Arduino IDE будет выводится сопротивление терморезистора 3950 ntc (термистора) и температура воздуха в помещении.



Подключение ptc термистора к Arduino Uno
Подключение светодиодов и термистора ptc / ntc к Arduino Uno
#define B 3950 // B коэффициент
#define RESISTOR 200000 // сопротивление резистора, 200 кОм
#define THERMISTOR 100000 // номинальное сопротивление термистора, 100 кОм
#define NOMINAL 25 // номинальная температура
 
#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);
}

Пояснения к коду:

  1. в зависимости от температуры будет включаться тот или иной светодиод.

Заключение. Использование терморезистора (термистора) – один из самых простых и дешевых способов измерения температуры с помощью микроконтроллера Ардуино. При изменении температуры окружающей среды изменяется сопротивление терморезистора, поэтому его применение оправдано там, где нет экстремальных температур и нет критичной важности в точности производимых измерений.



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.