Сучасні цифрові датчики температури DS18B20, DS18S20

DS18B20 – сучасний програмований датчик цифрового типу для контролю змін температури з функцією аварійного сигналу. Дані пристрої працюють згідно протоколу 1-Wire (однопроводная лінія зв’язку з мікро контролером) і забезпечені енергонезалежною пам’яттю для збереження і контролю запрограмованих параметрів інтерфейсу. Коректне вимірювання температури DS18B20 відбувається в діапазоні від -55 ° до + 125 ° С, але найменша похибка, складова 0,5 ° С, досягається в діапазоні від -10 ° до + 85 ° С.

Цифровий датчик даної серії не потребує допоміжного джерела напруги, оскільки для коректної його роботи досить накопиченої енергії за допомогою паразитної ємності, яка заряджається від виникає в лінії даних енергії.

Цифровий датчик температури DS18B20 завдяки своєму специфічному 64-розрядному коду дозволяє підключати в єдину лінію зв’язку кілька мікросхем даної серії для контролю мікроклімату як невеликого офісної будівлі в Києві, так і величезного виробничого цеху.

Загальна характеристика, назви та маркування висновків моделей DS18B20

Залежно від конструкції мікросхема-датчик температури Dallas DS18B20 для контролю заданих параметрів доступна в 3 формах:

  • ТО-92;
  • SO (150 mm);
  • μSOP.

Розшифруємо, де який висновок мікросхеми, і як правильно її підключити.

Основні особливості і характеристики датчика температури DS18B20:

  • низький рівень U харчування від лінії (3-5,5 В);
  • високоефективна робота за допомогою протоколу 1-Wire;
  • унікальний ідентифікаційний 64-бітний код, записується в незалежну ROM-пам’ять пристрою для роботи більшої кількості пристроїв за допомогою однієї лінії зв’язку, що дозволяє отримувати точне положення датчика, температурний режим якого знаходиться вище або нижче запрограмованого рівня;
  • широкий діапазон температурних вимірювань: -55 ° – + 125 ° С з точністю 0,5 ° С в діапазоні -10 ° – + 85 ° С;
  • вбудований АЦП дозволяє запрограмувати DS18B20 в діапазоні 9-12 розрядів, що дозволяє знизити час вимірювань до 750 мс;
  • зручне підключення мікросхеми DS18B20 Raspberry Pi;
  • для програмування термодатчика досить його підключити до будь-якого пристрою, що працює під управлінням архітектури Arduino, ARM, PIC або AVR.

Як працюють сучасні датчики температури

Блок-схема датчика температури типу DS18B20 виглядає наступним чином:

Виходячи з вищенаведеної структури, що розглядається датчик складається з:

  • регістра конфігурації, програмованого користувачем (9-12 розрядів);
  • датчика температури;
  • верхнього Th і нижнього Tl порога спрацьовування сигналу тривоги;
  • 64-бітної пам’яті типу ROM і блоку обробки протоколу 1-Wire;
  • внутрішнього джерела живлення, здатного працювати як від зовнішнього джерела, так і від «паразитних» імпульсів.

Принцип роботи

Основна функція мікросхеми DS18B20 – трансформація показань вбудованого датчика температури в цифровий код. Це перетворення залежить від дозволу перетворення, встановленого користувачем, яке варіюється від 9 до 12 біт (0,5 ° -0,625 ° С). Якщо настройки не проводилися, то установка регістра конфігурації відповідає 12 бітам.

У початковому стані DS18B20 знаходиться в стані спокою або іншими словами в низькому енергетичному рівні. Для початку вимірювань мікроконтролер подає сигнал [0х44], після чого отримані дані зберігаються в регістр, а сам датчик переходить у режим «спокою».

При роботі цифрового датчика температури DS18B20 від незалежного джерела живлення мікроконтролер здатний контролювати процес виконання команди [0х44], яка здійснює вимір температури. Таким чином, датчик температури DS18B20 сформує логічний «0» під час трансформації показань температурного режиму і логічну «1» в разі закінчення процесу перетворення.

Якщо харчування мікросхеми здійснюється за допомогою «паразитного методу», то контроль логічних «0» і «1» неможливий, оскільки на шині буде постійно чергувати високий рівень напруги харчування.

Після зняття і обробки сигналу з датчика температури в мікросхемі DS18B20 отримані дані в градусах Цельсія зберігаються у вигляді 16-бітного числа з ознакою (S), який відповідає за знак «+» або «-» температури. Структура регістра температури буде виглядати так, як показано нижче.

Якщо показання температури вище «0», то показник S = 0, якщо ж значення температури негативне, то S = 1. Нижче наведено таблицю відповідності даних і температури.

Як формуються і передаються тривожні сигнали Th і Tl

Після виконання трансформації показань температури в 16-бітний код отримане число порівнюється зі значеннями Th і Tl, розташованими в регістрі пам’яті (EEPROM) мікропроцесора, а саме другий і третій байти. Структура регістрів Th і Tl буде виглядати наступним чином:

Якщо отримані дані, 11-4 біти регістра, перевищують Th або ж нижче параметра Tl, то формується сигнал аварії на мікросхемі. Але на цьому вимірювання не припиняються, і в разі зниження Th нижче або Tl вище заданого діапазону умова «аварія»Скидається.

Якщо ж необхідно самостійно виявити один з датчиків, який видає сигнал «тривога», То мікроконтролер за допомогою команди ECh виконає тестування кожного датчика. У разі зміни параметрів Th і Tl, вище або нижче занесених в реєстр значень, видасть код пристрою з порушеннями температурного режиму.

Як виконати правильне харчування DS18B20

Мікросхема DS18B20 дозволяє здійснити 2 типу підключення:

  • паразитний режим;
  • підключення до зовнішнього джерела.

Розглянемо більш детально кожен з них.

паразитний режим

Даний тип підключення вважається більш раціональним. Основна його перевага – можливість роботи з великою кількістю датчиків за допомогою спеціальних додатків.

При високому U на шині мікросхеми DS18B20 працює і заряджає Cpp за допомогою виведення DQ. Обов’язкова умова для роботи пристрою в подібному режимі – заземлення Vdd. При зміні рівня сигналу на логічний «0» харчування схеми здійснюється від раніше зарядженого конденсатора. У звичайному режимі роботи мікросхема DS18B20 здатна демонструвати безперервну і стабільну роботу при дотриманні електричних характеристик.

Однак при виконанні мікросхемою частих перетворень і взаємодій з пам’яттю споживаний струм може перевищити 1,5 мА. Це призведе до просідання напруги на шині нижче мінімально допустимого рівня. Для вирішення цього завдання необхідно використовувати MOSFET транзистор. Він працює, коли виконується копіювання даних або ж перетворення температури. Проте його використовують дуже рідко, так як запас потужності мікросхеми DS18B20 дозволяє виконувати обчислення без зниження рівня напруги.

Недоліки паразитного підключення

У більшості випадків раціонально застосовувати цей метод. Однак якщо вимірювана температура вище 100 ° С, то виникає великий струм витоку, і заряду конденсатора Cpp не вистачає для повноцінного функціонування мікросхеми. У таких випадках краще застосовувати харчування мікросхеми від зовнішнього джерела.

Підключення цифрового датчика температури DS18B20 до зовнішнього джерела живлення

Основна перевага прямого підключення – відсутність MOSFET транзистора. Харчування мікросхеми здійснюється від зовнішнього джерела за допомогою резистора номіналом 4,7 кОм. Під час роботи за даною схемою основна шина перетворення може бути використана в інших цілях, тому що вона залишається вільною.

Контроль читання DS18B20

Для контролю процесу читання даних 64-бітного ROM-коду дев’ятий байт – це CRC або байти циклічного коду SRAM. Генератор CRC виглядає наступним чином:

Даний код знаходиться в старшому байті пам’яті ROM і обчислюється для попередніх 56 бітів. Основне завдання дев’ятого байта (CRC) – контроль читання даних з мікросхеми. Для цього мікропроцесор виробляє обчислення отриманого циклічного коду і виконує його порівняння із заздалегідь прийнятим кодом. В результаті порівняння мікроконтролер отримує дані про коректність отриманих даних.

Для перевірки отриманих даних служить поліном циклічного коду наступної структури:

C R C = X+ X+ X+ 1

Кодування датчика DS18B20

Для контролю рівня температур в різних точках застосовується велика кількість датчиків, кожен з яких закодований 64-бітовим кодом в ROM-пам’яті. У перші 8 біт записаний код сімейства (28h), у другі 48 біт – серійний номер датчика і в останні 8 біт запрограмований циклічний код (CRC) для всіх попередніх бітів.

регістр конфігурацій

Час обробки сигналу в мікросхемі DS18B20 залежить від значення байта 4 в пам’яті конфігурації, що є регістром конфігурації. Даний регістр виглядає, показано.

Для установки дозволу перетворення необхідно змінити параметри R0 і R1, які в первісному стані відповідають 11. таблиці наведено відповідність значень даних параметрів, дозволу час перетворення.

Робота з інтерфейсом 1-Wire

Система для вимірювання перепаду температурного режиму на основі датчиків DS18B20 працює за допомогою протоколу 1-Wire, який в свою чергу складається з ведучого (головного або «Майстер») і веденого пристрою (слейв). Датчик даного типу може підключатися тільки в якості веденого. При підключенні до шини тільки одного датчика дана система буде називатися однокрапкового, а в разі кількох – многоточечной. Всі дані і сигнали в подібній системі передаються з молодшим бітом спочатку.

Як виконана пам’ять цифрового датчика даного типу

Для повноцінної роботи DS18B20 складається з 2 типів пам’яті: EEPROM і SRAM. Перший тип пам’яті – незалежний, а другий – оперативний. Карта пам’яті виглядає наступним чином:

У EEPROM-пам’яті зберігаються дані граничних порогів температур, а також регістр конфігурацій.

А в карті пам’яті SRAM перші 2 байта (0 і 1) відповідають за виміряну температуру, другі 2 байта призначені тільки для читання і відповідають за значення граничних температур з пам’яті EEPROM, четвертий байт містить в собі параметри конфігурації. А зарезервовані байти з п’ятого по сьомий завжди видають логічну «1» при читанні і не можуть бути записані. Для коректної роботи пам’яті є також восьмий байт або генератор циклічного коду, який відповідає за перші 8 байт.

Щоб виконати запис в байти 2-4, буде потрібно виконати команду [4Eh] ЗАПИС ПАМ’ЯТІ. Для отримання доступу до записаним даними досить виконати команду [BEh] ЧИТАННЯ ПАМ’ЯТІ. А якщо необхідно виконати запис параметрів TH, TL або ж регістра конфігурації, тоді слід виконати команду [48h] КОПИРОВАНИЕ ПАМ’ЯТІ.

Що знадобиться для роботи з мікросхемою DS18B20

Для роботи з мікросхемою DS18B20 потрібно:

  • програмне забезпечення Arduino IDE;
  • бібліотека для роботи з протоколом 1-Wire OneWire library;
  • скетч.

Вищевказані додатки дозволять зробити прошивку мікросхеми. Однак, щоб це здійснити, потрібно наступне обладнання:

  • контролер Arduino;
  • USB-кабель, що включає контролер до персонального комп’ютера;
  • монтажна плата для установки мікросхеми і 3 коннектора.

Підключення мікросхеми до Arduino

Для підключення датчика, як показано на схемі нижче, контакт 1 (GND) підключається до загального «-» плати, контакт 2 (Vdd) підключається до джерела живлення +5 В через підтягаючий резистор номіналом 4,7 кОм, а останній контакт 3 (DATA ) підключається до одного з пинов на мікроконтролері Arduino (на схемі використаний другий пін).

Для коректної роботи пристрою в скетчі необхідно перевірити параметри рядків з номерами 65 і 10, так як рядок 65 відповідає за «пряме» ds.write (0x44) або «паразитне» ds.write (0x44, 1) підключення, а рядок 10 за номер виведення на платі, до якого підключений висновок «DATA».

Для даного випадку рядок 10 повинен мати наступний вигляд: OneWire ds (2).

Налаштування коду і робота з бібліотеками

Після закінчення монтажних робіт можна приступати до програмування пристрою. Для цього за допомогою програми Arduino IDE потрібно змонтувати бібліотеку OneWire library. Для цього в меню програми необхідно вибрати «Add Library», Яке розташоване в меню«Sketch»Або для російськомовного варіанту«скетч»-«підключити бібліотеку»-«OneWire».

Далі в відкрилася бібліотеці слід знайти приклад програмування «DS18x20_Temperature». Для цього необхідно в меню «файл»Вибрати підменю«приклади», Далі розділ«OneWire»І пункт«DS18x20_Temperature».

У прикладі з бібліотеки OneWire в рядку 10 спочатку запрограмований 10 pin мікроконтролера, для розглянутого випадку його потрібно замінити на 2. В результаті 10 рядок повинен виглядати наступним чином:

Після коректно виконаних операцій, компіляції та завантаження програми у вікні монітора порту «Інструменти»-«монітор порту»З’явиться приблизно наступне:

висновок

Датчик DS18B20 – складний пристрій, що вимірює температурний режим, що володіє легкою схемою монтажу, високою точністю вимірювань температури і надійністю. Однак для повноцінного функціонування даних пристроїв необхідно виконати складне програмування.

Ссылка на основную публикацию