11.08.2017 15:44 Количество просмотров материала 3663 Время на чтение ~4 мин
Увеличить | Уменьшить Распечатать страницу

Датчик температуры на базе TSYS01 своими руками


Notice: Undefined index: host in /www/mozgochiny.ru/wp-content/plugins/cas/cas.php on line 131

Датчик температуры на базе TSYS01 своими руками

Специально для mozgochiny.ru

Сегодня мы поговорим об прецизионных измерениях. Необходимость точного контроля температурного режима обуславливается различными процессами. Величина измеряемой температуры (в данном случае) должна оставаться в пределах ± 0,1 °C от заданного значения уставки.

Датчик температуры на базе TSYS01 своими руками

Для выполнения данной задачи нам понадобится самый точный датчик температуры, который сможем найти. С одной стороны, датчик должен быть откалиброван на заводе до нужной температуры, поскольку калибровка до 0,1 °C практически невозможна без специализированного оборудования. С другой стороны, аналоговый температурный датчик с заявленной точностью ± 0,1 ° C все же может давать неточные результаты после того, как значение преобразуется в цифровое значение с помощью АЦП.

Единственным решением было использование цифрового датчика температуры TSYS01 и микроконтроллера Arduino.

Шаг 1: Датчик температуры TSYS01

Датчик температуры на базе TSYS01 своими руками

При правильном подключении TSYS01 может обеспечить точность ± 0,1 °C для диапазона температур от -5 °C до +50 ° C. Это результат преобразования 24- разрядного АЦП. АЦП имеет низкий самонагрев и небольшую постоянную времени. Полный диапазон измерения датчика составляет от -40 °C до +125 °C, но точность датчика при этом ухудшиться до ± 0,5 ° C.

Датчик температуры на базе TSYS01 своими руками

Недостатком TSYS01 является то, что его чрезвычайно сложно использовать без хорошо спроектированной печатной платы. Кроме этого требуется чрезвычайно стабильный источник напряжения 3,3 В, конденсатор ёмкостью 100 нФ. Кроме того, для взаимодействия микроконтроллера с устройством используется один из интерфейсов SPI или I2C.

Шаг 2: Подбор деталей

Датчик температуры на базе TSYS01 своими руками

Список деталей:

  • TSYS01 датчик температуры;
  • 3,3В 8МГц Arduino Pro Mini + USB Serial Converter.
  • Макетная плата;
  • Джамперы/перемычки;
  • Для владельцев 5В Arduino: логический преобразователь уровня.

Шаг 3: Выбор между I2C и SPI

Плата датчика температуры TSYS01 поддерживает интерфейсы SPI и I2C. Вам нужно решить какой из них использовать и отразить соответствующие настройки в прошивке.

Интерфейс I2C требует подключения всего двух линий: SDA (сигнал данных) и SCL (тактовый сигнал для синхронизации). Он также позволяет нескольким устройствам использовать одни и те же линии данных. Выбор предпочтительного устройства для связи осуществляется путем отправки уникального адреса I2C перед отправкой пакетов данных. По скорости передачи I2C намного медленнее, чем SPI. Кроме того, I2C может подтягивать сигнальные линии только к земле. Высокий уровень сигнала достигается с помощью двух резисторов: один подключается между 3.3 В и SDA, а другой между 3.3 В и SCL. Это приводит к тому, что уровни сигналов будут идти к 3,3 В, если устройство I2C активно не тянет линии вниз. По крайней мере, большинство Arduino должны иметь внутренние подтягивающие резисторы для линий передачи данных I2C. Однако в некоторых случаях этих внутренних подтягивающих резисторов может быть недостаточно и должны быть добавлены внешние резисторы с более низкими значениями сопротивления.

Для подключения SPI потребуется больше линий, чем I2C, но данный интерфейс быстрее, проще и способен подтягивать уровни сигналов без дополнительных резисторов. Необходимые сигнальные линии:

  • MOSI (данные от ведущего к ведомому);
  • MISO (данные от ведомого к ведущему);
  • SCLK (тактовый сигнал);
  • CS (выбор микросхемы).

Поскольку SPI имеет раздельные линии, данные могут одновременно передаваться в обоих направлениях (невозможно на I2C). Линии данных MOSI, MISO и SCLK могут совместно использоваться несколькими устройствами SPI, но линия CS для каждого своя, поскольку она используется для выбора связи с предпочтительным устройством.

Шаг 4: Подключение платы TSYS01 к Arduino

Датчик температуры на базе TSYS01 своими руками

Распиновка контактов для Arduino Pro mini указана в скобках.

Для I2C:

  • Arduino                 <->                  TSYS01 Датчик
  • 3V - 12V (VCC)    <->                  Vin
  • GND                      <->                  GND
  • SCL (A5)               <->                  SCLK / SCL
  • SDA (A4)               <->                  MOSI / SDA

При желании также можете использовать:

  • A0                          <->                  Shutdown

(Если хотите использовать функцию выключения платы для снижения энергопотребления).

  • GND                      <->                  CS / ADDR

(Если хотите использовать альтернативный адрес I2C для платы. Это требуется для получения двух разных датчиков, работающих на одной шине I2C).
Для SPI:

  • Arduino                 <->                  TSYS01 Датчик
  • 3V - 12V (VCC)    <->                  Vin
  • GND                      <->                  GND
  • SCLK (13)            <->                  SCLK / SCL
  • MOSI (11)             <->                  MOSI / SDA
  • MISO (12)             <->                  MISO
  • 10                          <->                  CS / ADDR
  • GND                      <->                  MODE (для выбора режима SPI)

При желании также можете использовать:

  • A0                           <->                  Shutdown

(Если хотите использовать функцию выключения платы для снижения энергопотребления).

Шаг 5: Загрузим библиотеку и создадим скетч

Датчик температуры на базе TSYS01 своими руками

Библиотеку Arduino и некоторые дополнительные файлы можно найти: ELL-i-KiCAD-Boards-master

После создания скетча проекта в среде Arduino, загрузим zip-файл, разархивируем его, перейдём в ELL-i-KiCAD-Boards / TSYS01 / Arduino / и скопируем файлы Tsys01.h и Tsys01.cpp в папку скетча. Библиотека готова к использованию.

Затем можете протестировать датчик, воспользовавшись простым скетчем, если выбран интерфейс SPI. Если же хотите использовать интерфейс I2C, вам нужно закомментировать SPI и раскомментировать I2C.

TSYS01

Шаг 6: Использование TSYS01

С помощью датчика можно легко создавать температурные диаграммы. Например, температура воздуха процессора до, во время и после теста. Горизонтальная ось - секунды, а вертикальная ось - температура воздуха в градусах Цельсия. Плата Аrduino, подключенная к TSYS01, позволяет создать воистину точный датчик температуры! График был создан путем печати CSV с Arduino по последовательному порту и записи последовательных данных в файл с помощью скрипта Python.

( Специально для МозгоЧинов #How-to-Measure-Temperature-Very-Accurately-With-an/" target="_blank" rel="noopener noreferrer">)

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]


Вверх