Arduino аналоговый температурный датчик

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Аналоговый термометр (Troyka-модуль): подключение, настройка, схема и примеры использования

Для измерения температуры окружающей среды воспользуйтесь электронным аналоговым термометром на основе микросхемы TMP36.

Подключения и настройка

Датчик общается с управляющей электроникой по трём проводам. На выходе сенсора — аналоговый сигнал, который сообщает микроконтроллеру об измеренной температуре.

При подключении к Arduino или Iskra JS удобно использовать Troyka Shield.

С Troyka Slot Shield можно обойтись без лишних проводов.

Примеры использования

Программа для Arduino

С помощью библиотеки TroykaThermometer, выведем в Serial-порт температуру, используя три шкалы измерения.

Программа для IskraJS

Выведем в Serial порт значения температуры используя четыре разные формы представления данных. Применим модуль thermometer для Iskra JS

Элементы платы

Микросхема TMP36

Микросхема TMP36 от Analog Device — это прецизионный низковольтный датчик температуры. Высокая линейность выходного сигнала, а так же достаточная точность измерений позволяет подключать датчик напрямую к аналоговым входам Arduino/Iskra.

Контакты подключения трёхпроводного шлейфа

Модуль подключается к управляющей электронике по трём проводам. Назначение контактов трёхпроводного шлейфа:

Источник

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Датчик температуры TMP36 и его подключение к Arduino

Аналоговый датчик температуры TMP36 компании Analog Devices позволит вам легко получать достаточно точные показания температуры в диапазоне от -40 до +150°C. К тому же его очень просто подключить к Arduino.

Этот датчик температуры является твердотельным, то есть для измерения температуры в нем не используется ртуть как в термометрах или термисторы (резисторы, чувствительные к температуре).

Вместо этого в нем используется тот факт, что при возрастании температуры напряжение на диоде возрастает в известной пропорции. Технически, на самом деле это падение напряжения между базой и эмиттером (Vbe) транзистора. После усиления такого изменения напряжения легко получить аналоговый сигнал, который будет прямо пропорционален температуре.

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

Выходной диапазон напряжения TMP36 составляет от 0.1В (-40°C) до 2.0В (150°C), но после 125°C точность измерения уменьшается. Подаваемое напряжение от 2.7В до 5.5В, потребление тока всего 0.05 мА.

Как измерять температуру

Использовать TMP36 для измерения температуры достаточно просто, нужно соединить его левый контакт с напряжением 2.7-5.5В, а правый с землей. Тогда на среднем выводе будет присутствовать напряжение, линейно пропорциональное температуре.

Чтобы перевести напряжение в температуру просто воспользуйтесь следующей формулой (Vout измеряется в милливольтах):

Температура в °C = [Vout — 500] / 10

Например, выходное напряжение составляет 1 В, это значит, что температура равна ((1000 мВ — 500) / 10) = 50 °C.

Если вы используете датчики температуры типа LM35 и ему подобные, то ориентируйтесь на линию ‘a’ графика, показанного выше. Формула тогда будет следующая:

Температура в °C = Vout / 10

Проблема при использовании нескольких датчиков

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

Подключаем датчик температуры к Arduino

Подключение датчика довольно простое и показано на рисунке ниже.

В данном случае мы подключили датчик к напряжению 5 В, но также можно его подключать к 3.3 В. Не важно к какой линии питания вы его подключите, его выходное напряжение все равно не превысит 2 В. С учетом того, что АЦП в Arduino 10-и разрядный, то будет справедлива следующая формула:

Напряжение на выводе в мВ = (показания АЦП) * (5000/1024)

Эта формула преобразует число от 0 до 1023 с АЦП в 0-5000мВ (= 5В). При использовании питания 3.3 В формула будет следующая:

Напряжение на выводе в мВ = (показания АЦП) * (3300/1024)

Далее, чтобы перевести милливольты в температуру, нужно воспользоваться формулой:

Температура в цельсиях = [(аналоговое напряжение в мВ) — 500] / 10

Простой термометр на Arduino

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

Повышаем точность измерения температуры

Для получения более точного результата с меньшим уровнем шумов можно задействовать опорное напряжение 3.3V с ARef. На рисунке ниже показана схема соединения. Следует отметить, что TMP36 в этом случае подключен к аналоговому вводу A1. Также не следует забывать, что при использовании вывода 3.3v в качестве опорного в коде нужно прописывать analogReference(EXTERNAL).

Источник

RoboCraft

9. Аналоговый датчик температуры – LM335

Варианты измерения температуры:
1. термопара
2. терморезистор
3. аналоговый термодатчик
4. цифровой термодатчик

подробнее можно почитать здесь

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

LM335 – это недорогой (

40 рублей) температурный чувствительный элемент с диапазоном от -40 °C до +100°C и точностью в 1°C.

Даташит (datasheet – документация на элемент) на LM335 можно посмотреть здесь

Фактически, LM335 — это стабилитрон с нормированным Температурным Коэффициентом Напряжения (ТКU =10 мВ/K).

Т.е. изменение температуры датчика на 1 градус ведёт к изменению напряжения на 10mV.

Схема включения (соответствует типовой схеме включения стабилитрона):

Задавая ток через датчик в диапазоне от 0.45mA до 5mA (резистором R1), получаем напряжение на датчике, которое в десятках mV представляет абсолютную температуру в градусах Кельвина.

Как видим, используются только вторая и третья ножки датчика (если повернуть датчик к себе плоской стороной – то нумерация ножек будет идти слева-направо)

То есть, схему можно представить так:

Сопоставим напряжение на датчике и температуру, припоминая, что
0С = 273.15К
На датчике, при этом будет напряжение 2.7315V

ТКU =10 мВ/K => в 1V будет 100K

-40С = 233.15К
на датчике будет 2.3315V
+100С = 373.15К
на датчике будет 3.7315V

Получается – нам нужно только снять это напряжение на аналоговом входе (например, analog input 0) 🙂
Однако, функция analogRead, возвращает значение от 0 до 1023, причём 1023 соответствует величине Опорного Напряжения, задаваемого функцией analogReference и по умолчанию, составляющего 5V.
Т.о., чтобы узнать какое напряжение поступило к нам на вход – нужно выполнить простое преобразование:

, где val – величина, полученная от analogRead
Далее остаётся только перевести это напряжение в градусы, а потом привести из градусов Кельвина в более привычные градусы Цельсия:

в температуру переводим – просто умножая на 100

В последнем столбце вывода получаем заветную температуру в градусах Цельсия 🙂

Источник

Adblock
detector