1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 51 53 54 55 56

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

11.08.2017 в Самоделные инструменты, Электронные самоделки

Перевёл alexlevchenko для mozgochiny.ru

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

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

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

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

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

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

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

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

  • 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

Распиновка контактов для 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: Загрузим библиотеку и создадим скетч

Библиотеку 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.

(A-z Source)


  • RSS
  • Facebook
  • LiveJournal
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • В закладки Google
  • Blogger
  • Twitter

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

  1. скільки контактів, тонка і ніжна плата -40°C … +125°C……. даллас -55°C…+125°C виглядає як транзистор. шина даних — 2 дротини. ну да похибка далласа ±0.5°C а цього ± 0,1 °C

Прокомментировать

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

Мастер-классы | Как сделать | DIY | Handmade | Self made | Поделки | Своими руками | Карта сайта | Реклама

Всё что ты хочешь, ты можешь сделать САМ! Мы за созидание, развитие и свободное распространение знаний и личного опыта!

МозгоЧины - сообщество энтузиастов © 2010 – 2017

Перейти к верхней панели