KY-013 – модуль аналогового датчика температуры. Подключение к Arduino.

Продолжаем изучать модули из набора «37 in 1 Sensors Kit for Arduino» и сегодня рассмотрим модуль KY-013аналоговый датчик температуры. Разберем, как его подключить к Arduino, выведем показание температуры в монитор порта. А также рассмотрим, с какими проблемами можно столкнуться при работе с данным модулем.

модуль KY-013 – аналоговый датчик температуры

Неправильная маркировка и расположение выходов модуля KY-013.

У модуля KY-013 есть несколько вариантов неправильной маркировки выводов подключения.

Первый вариант это перепутанные местами сигнальный вывод (S) и GND. Если при подключении у вас не выводит показания температуры, то у вашего модуля аналогичная проблема. Меняем местами подключения данных контактов.

Первый вариант это перепутанные местами сигнальный вывод (S) и GND.

Второй вариант связан с выводом температуры в неправленом направлении. То есть если вы нагреваете датчик, а температура понижается. Вот что вы увидите в мониторе порта.

То есть если вы нагреваете датчик, а температура понижается.

В таком случае меняем местами подключения питания 5v и GND. И показания будут выводиться правильно.

Описание модуля KY-013 – аналоговый датчик температуры.

Описание модуля KY-013 – аналоговый датчик температуры.

Модуль аналогового датчика температуры KY-013 для Arduino измеряет температуру окружающей среды за счет изменения сопротивления термистора. Данный модуль можно подключать к различным микроконтроллерам (Arduino, ESP32, ESP8266, stm32 и пр.) для измерения температуры окружающей среды.

Технические характеристики KY-013

Технические характеристики KY-013:

  • Рабочее напряжение -5В;
  • Диапазон измерения температуры - от -55 до 125 ° C;
  • Точность измерения - ± 0,5 ° С;

Модуль аналогового датчика температуры KY-013 состоит из термистора NTC и резистора 10 кОм. Сопротивление термистора зависит от температуры окружающей среды, мы воспользуемся уравнением Стейнхарта – Харта, чтобы получить точную температуру термистора.

Схема подключения KY-013 аналогового датчика температуры к Arduino UNO.

Схема подключения KY-013 аналогового датчика температуры к Arduino UNO.

Схема подключения KY-013 аналогового датчика температуры к Arduino NANO.

Схема подключения KY-013 аналогового датчика температуры к Arduino NANO.

Подключаем линию питания платы (посередине) и землю (-) к 5 В и GND соответственно. Затем сигнал (S) к контакту A0 на Arduino.

Внимание! Не забывайте про вероятность, что на некоторых платах нанесена неправильная разметка контактов, о чем я рассказывал в начале урока.

Пример кода Arduino для получения значений температуры с датчика KY-013.

В следующем скетче Arduino будет вычисляться температура термистора с использованием уравнения Стейнхарта-Харта. Код вернет температуру в градусах Цельсия.

int ThermistorPin = A0;
int Vo;
float R1 = 10000; // значение R1 на модуле
float logR2, R2, T;
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //коэффициенты Штейнхарта-Харта для термистора

void setup() {
  Serial.begin(9600);
}

void loop() {
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0); //вычислите сопротивление на термисторе
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // температура в Кельвине
  T = T - 273.15; //преобразование Кельвина в Цельсия

  Serial.print("Temperature: "); 
  Serial.print(T);
  Serial.println(" C"); 

  delay(500);
}

Коэффициенты применимы только к платам с термисторами 10 кОм, некоторые редкие платы имеют термисторы на 100 кОм и требуют других коэффициентов.

Коэффициенты применимы только к платам с термисторами 10 кОм

Проверяем точность аналогового датчика температуры с помощь модуля KY-001.

Проверяем точность аналогового датчика температуры с помощь модуля KY-001

Для того чтобы определить точность измерения модуля KY-013 - аналогового датчика температуры, подключим модуль KY-001, который оснащён цифровым датчиком DS18B20. Урок по подключению модуля KY-001 смотрите тут: KY-001 модуль температуры на базе DS18B20. Подключение к Arduino.

Схема подключения модулей KY-001, KY-013 к Arduino UNO.

Схема подключения модулей KY-001, KY-013 к Arduino UNO.

Схема подключения модулей KY-001, KY-013 к Arduino NANO.

Схема подключения модулей KY-001, KY-013 к Arduino NANO.

Код Arduino получения показаний с модулей KY-001, KY-013.

#include <OneWire.h>
OneWire ds(2);

int ThermistorPin = A0;
int Vo;
float R1 = 10000; // значение R1 на модуле
float logR2, R2, T;
float c1 = 0.001129148, c2 = 0.000234125, c3 = 0.0000000876741; //коэффициенты Штейнхарта-Харта для термистора

void setup() {
  Serial.begin(9600);
}

void loop() {
  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0); //вычислите сопротивление на термисторе
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // температура в Кельвине
  T = T - 273.15; //преобразование Кельвина в Цельсия

  byte i;
  byte data[12];
  byte addr[8];
  float celsius;
  // поиск датчика
  if ( !ds.search(addr)) {
    ds.reset_search();
    delay(250);
    return;
  }
  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1); // измерение температуры
  delay(1000);
  ds.reset();
  ds.select(addr);
  ds.write(0xBE); // начало чтения измеренной температуры
  //показания температуры из внутренней памяти датчика
  for ( i = 0; i < 9; i++) {
    data[i] = ds.read();
  }
  int16_t raw = (data[1] << 8) | data[0];
  // датчик может быть настроен на разную точность, выясняем её
  byte cfg = (data[4] & 0x60);
  if (cfg == 0x00) raw = raw & ~7; // точность 9-разрядов, 93,75 мс
  else if (cfg == 0x20) raw = raw & ~3; // точность 10-разрядов, 187,5 мс
  else if (cfg == 0x40) raw = raw & ~1; // точность 11-разрядов, 375 мс
  // преобразование показаний в градусы Цельсия
  celsius = (float)raw / 16.0;
  
  
  Serial.print("KY-013 = ");
  Serial.print(T);
  Serial.println(" C");
  Serial.print("KY-001 = ");
  Serial.print(celsius);
  Serial.println(" C");
  Serial.println("------");

  delay(500);
}

В данном скетче считываем показания температуры с двух модулей KY-001, KY-013 и выводим полученные значения в монитор порта.

 показания температуры с двух модулей KY-001, KY-013 и выводим полученные значения в монитор порта.

Как видим из показаний, температура с модуля KY-013 больше почти на 1 градус цельсия, чем с модуля KY-001. Хотя производитель гарантирует точность измерения ± 0,5 ° С.

Вывод по модулю KY-013.

модуль KY-013 - аналоговый датчик температуры

Вывод про модуль KY-013 - аналоговый датчик температуры можно сделать следующий. Использовать его можно в проектах не требовательных к точности измерений температуры, с возможными отклонениями в показаниях ± 1 ° С. Это связано с значительной погрешностью измерения данного модуля.

Понравился Урок KY-013 – модуль аналогового датчика температуры? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Пример кода Arduino для получения значений температуры с датчика KY-013 Пример кода Arduino для получения значений температуры с датчика KY-013.ino1 Kb 13 Скачать
Код Arduino получения показаний с модулей KY-001, KY-013 Код Arduino получения показаний с модулей KY-001, KY-013.ino2 Kb 7 Скачать

Комментарии

Ваше Имя*