Как подключить датчик KTY81-110 к Arduino

Сегодня мы поговорим о датчике, который не боится времени и остаётся востребованным в промышленной и любительской электронике уже много лет — KTY81. Это не цифровой DHT21 и не дешёвый термистор, а кремниевый датчик температуры с линейным откликом. Датчик применяется в системах отопления и вентиляции, для контроля температуры двигателей и трансформаторов.

Ардуино датчик KTY81 характеристики, распиновка

KTY81 Arduino распиновка, характеристики
Термодатчик KTY81-110 Arduino распиновка, характеристики

KTY81 — это кремниевый датчик температуры с положительным температурным коэффициентом (PTC). Простыми словами: при нагревании его сопротивление возрастает (в отличие от термисторов NTC, у которых сопротивление падает). У аналогового сенсора kty-81 зависимость сопротивления от температуры почти линейная, что значительно упрощает расчёты по сравнению с термисторами.

Характеристики датчика KTY81 Arduino (datasheet)

  • Тип датчика: PTC (положительный ТКС)
  • Сопротивление при 25°C: 1 кОм (KTY81-110) или 2 кОм (KTY81-120)
  • Температурный коэффициент: ~0.79% на °C (при 25°C)
  • Диапазон температур: -55 … +150°C
  • Точность: ±0.5°C при 25°C, до ±2.5°C во всём диапазоне
  • Максимальная рассеиваемая мощность: ~10 мВт (при 25°C)
  • Корпус: DO-34 (SOD-68) – диодный вид
  • Сигнал: аналоговый

Главное преимущество KTY81-110 и KTY81-120 — сенсор даёт стабильные показания в широком диапазоне температур и не требует сложной калибровки. Важно, чтобы ток через аналоговый сенсор KTY81 не превышал 1–2 мА, чтобы датчик не грелся. При питании от 5V Ардуино и резисторе 2.2 кОм ток примерно 1.4 мА – это нормально.

Подключение датчика KTY81-110 к Arduino Uno

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

  • Arduino Uno / Arduino Nano / Arduino Mega
  • сенсор KTY81-110 или KTY81-120
  • провода «папа-мама», «папа-папа»
Подключение датчика KTY81 220 к Arduino
Подключение термо датчика KTY81 220 к Arduino

Формула в следующем скетче даёт погрешность 1-2°C. Если нужна большая точность то откалибруйте аналоговый сенсор по двум точкам. Измерьте датчиком KTY81-110 (KTY81-120) температуру кипящей воды (100°C) и тающего льда (0°C) – получите индивидуальные поправки. Стабилизируйте опорное напряжение и вместо 5V с микроконтроллера Arduino используйте внешний источник питания 5V.

Скетч для аналогового датчика температуры KTY81 Ардуино

// Пины и константы
const int analogPin = A0;
const float knownResistor = 2200.0; // известный резистор (2.2 кОм)
const float Vref = 5.0; // опорное напряжение Arduino

// Коэффициенты KTY81-110 (упрощённые)
const float R0 = 1000.0;   // сопротивление при 25°C
const float T0 = 25.0;     // опорная температура
const float alpha = 0.00788; // температурный коэффициент

void setup() {
  Serial.begin(9600);
  analogReference(DEFAULT); // используем 5V как опору
  Serial.println("KTY81 температурный тест");
}

void loop() {
  // Читаем АЦП (0-1023)
  int adcValue = analogRead(analogPin);
  
  // Вычисляем напряжение на пине
  float voltage = adcValue * (Vref / 1023.0);
  
  // Вычисляем сопротивление KTY81
  // Делитель: Vout = Vref * (R_kty / (R_known + R_kty))
  // => R_kty = R_known * (Vout / (Vref - Vout))
  float R_kty;
  if (voltage > 0 and voltage < Vref) {
    R_kty = knownResistor * (voltage / (Vref - voltage));
  } else {
    R_kty = -1; // ошибка
  }
  
  // Расчёт температуры (упрощённая линейная формула)
  float temperature = T0 + (R_kty - R0) / (R0 * alpha);
  
  // Вывод
  Serial.print("ADC: ");
  Serial.print(adcValue);
  Serial.print("  Напряжение: ");
  Serial.print(voltage);
  Serial.print(" V  R_kty: ");
  Serial.print(R_kty);
  Serial.print(" Ом  Температура: ");
  Serial.print(temperature);
  Serial.println(" °C");
  
  delay(1000);
}

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

  1. для KTY81-120 (2 кОм при 25°C) замените R0 на 2000, alpha примерно 0.00786

Настройка и решение проблем

  1. Датчик всегда показывает 25°C, не реагирует на нагрев пальцем
    Слишком маленький резистор в делителе (например, 220 Ом). Увеличьте резистор до 2.2 кОм – 10 кОм.
  2. Показания скачут или сильно шумят
    Помехи по длинным проводам или нет конденсатора — добавьте конденсатор 100 нФ между пином A0 и GND рядом с Arduino.
  3. Температура не совпадает с комнатным термометром
    Уменьшите ток через датчик (увеличьте резистор до 10 кОм). Или сделайте двухточечную калибровку аналогового сенсора температуры.

Заключение. KTY81 – отличный выбор, когда нужна стабильность, широкий диапазон и нежелательны цифровые интерфейсы. По сравнению с LM35 он дешевле и выносливее, но чуть менее удобен в расчётах. KTY81 – это надёжный, предсказуемый и дешёвый аналоговый датчик. Он требует чуть больше усилий на расчёты, чем цифровые собратья, но зато его можно подключать к Ардуино на длинные провода.



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

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

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