Ваш регион:
Ваш город — Техас
Угадали?
Обратный звонок
ПН-ПТ 9:00 - 19:00
В корзине пусто!

DS18B20 – полное описание датчика и его возможностей

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

ds18b20 фото

Общее описания датчика DS18B20

DS18B20 – это датчик температуры, который обладает разрешением преобразования от 9 до 12 разрядов. Тревожный сигнал – функция, которая позволяет качественно контролировать температуру жидкости. Большинство параметров контроля задаются самостоятельно, пользователем. Они сохраняются в памяти и могут быть перенастроены в будущем. Датчик ds18b20 использует протокол интерфейса 1-Wire для обмена данными.

Линия данных может стать непосредственным передатчиком энергии для ds18b20. В таком случае можно не пользоваться внешними источниками. Так называемое – паразитное питание. Каждая выпущенная модель изготовляется со своим уникальным кодом. Он имеет длину в 64 разряда, поэтому сразу несколько датчиков могут работать одновременно, на одной линии связи. Один порт может выступать обменщиком данных сразу для двух датчиков.

Датчик может измерять температуру в достаточно широком диапазоне, от -55 до +125 градусов по Цельсию. Погрешность минимальна и зачастую составляет максимум полградуса. Вышеописанные характеристики делают датчки популярным для использования в экологическом контроле, мониторинге температурных перемен в зданиях, а также в узлах оборудования.

Основные преимущества

Датчик ds18b20 обладает массой основных функций и плюсов:

  1. Однопроводный интерфейс 1-Wire требует только один порт связи для контроллера.
  2. Уникальные коды для каждого агрегата.
  3. Одна линия может подключить сразу несколько датчиков.
  4. Не нужны никакие внешние компоненты.
  5. Питание может быть получено напрямую после подключения к линии связи.
  6. Большой диапазон температур, от -55 до +125 градусов Цельсия.
  7. Ошибки и погрешности могут составлять максимум полградуса.
  8. Можно запрограммировать тревожный сигнал.
  9. Адрес датчика будет передаваться тревожным сигналом, если температура вышла за предел допустимого.
  10. Позволяет установить программное обеспечение.
  11. Может применяться практически повсеместно.

Краткий обзор характеристик

Датчик позволяет вносить корректировки в конфигурацию, используя регистр. Можно установить параметры преобразования агрегата. Цифра варьируется от 9 до 12 бит. Вся информация будет внесена в энергонезависимую память, которую еще называют (EEPROM). Обмен данными осуществляется специальным протоколом 1-Wire. Владельцу нужен небольшой подтягивающий резистор, ведь все агрегаты подключаются к общей шине.

Если быть более точными:

Также датчик может работать без источников внешнего питания. Используется специальный резистор и вывод DQ. Сигналы повышенного уровня подзаряжают внутренние конденсаторы. Данный метод называется паразитным питанием. Каким вариантом питания пользоваться решать именно владельцу.

Фото обзор характеристик ds18b20

Режим измерения температур

Как проверить работоспособность датчика? Преобразовывать температуру в цифровые данные – вот основная функция датчика. Разрешение цифровых кодов задает сам владелец. Когда питание подключено, DS18B20 потребляет малое количество энергии. Для инициации измерения температур, микроконтроллер выполняет команду преобразования температуры. Когда процесс завершается, результаты находятся в 2 байтах регистра.

Если подключена схема внешнего питания, микроконтроллер может следить за состоянием конвертации. Он читает состояние линии, то есть, другими словами – выполняет временные слоты чтения. Далее, когда команда завершиться, линия переходит в высокое состояние. Когда выполняются процессы конвертации, она, наоборот, в низком положении.

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

Как проверить полученный результат? Датчик предоставит все данные в 16-ти разрядном знаковом числе с дополнительным кодом. Если разрешение выставлено 12 быт, то регистр предоставляет наиболее точные результаты.

Как работает тревожный сигнал

Когда запущена команда преобразования температур, полученные данные сравнивают с верхними и нижними порогами регистров. Байтовое значение является знаковым и имеет дополнительный код. Энергозависимая память сохраняет все показатели. Регистры имеют разную длину, поэтому сравнения идет с битами 11 по 4 регистра. Если данные превышают или находятся ниже, то создается признак угрозы. Каждое измерение температурных данных перезаписывает эту команду. То есть, если температура снова вернулась в норму, то информация будет удалена с датчика.

Как проверить состояние датчика? С помощью специально команды поиска тревожных сигналов. Если датчик включен, то он всегда отреагирует на заданную команду. Таким образом, если работает сразу несколько датчиков, мастер сможет легко понять, какой из них выдает тревожный сигнал.

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

Так как DS18B20 передает значение в двоичном коде, то получаемая информация должна куда-то поступать. Цифровой или аналоговый пин платы ардуино принимает данные, а затем декодирует. Программа DS18B20 1-Wire имеет определенный протокол, по которому и работает вся система. Чтобы понимать ее достаточно иметь минимальную базу знаний:

Какие программы DS18B20 необходимы для его качественной работы?

  1. Arduino IDE;
  2. OneWire – специальные библиотеки, которые могут быть использованы сразу несколькими датчиками.
  3. DallasTemperature – аналог предыдущего варианта, менее популярен, но тоже используется.

А что касается оборудования для датчика?

  1. DS18B20 в одном экземпляре или нескольких.
  2. Специальный микроконтроллер от компании Ардуино.
  3. Несколько коннекторов.
  4. Резисторы на 4.7 кОм.
  5. Одна монтажная плата.
  6. Кабель, который можно подключить к персональному ПК и проводить анализ получаемой информации.

Когда датчик нужно подсоединить к плате, то для многих это становится проблемой. Ничего сложного. GND – знак, который вы найдете на датчике, его нужно соединить с GND. Второй показатель располагается на самой плате. Vdd необходимо соединить с 5V, а Data объединяется с любым цифровым пинам. Калибровка может осуществляться только в том случае, если вся система собрана.

Фото распиновка ds18b20

Скетч для датчика

Программа DS18B20 может работать только по определенному алгоритму. Это позволит максимально точно и быстро получать данные об изменении температуры. Как проверить правильно ли работает скетч? Достаточно проследить за алгоритмами его функционирования, он должен выглядеть следующим образом.

Пример скетча

Программа DS18B20 OneWire требует скетчи для полноценной работы цифрового датчика. Мы прилагаем к данному материалу пример простейшего скетча.

#include <OneWire.h>

/*

* Описываются взаимодействия с агрегатом ds18b20

* ds18b20 подключается к плате используя восьмой пин

/*

OneWire ds(8); // Создается объект на шине, он сделает работу с датчиком возможной

 

void setup(){

  Serial.begin(9600);

}

 

void loop(){

  // Определяется температурный показатель агрегата DS18b20

  byte data[2]; // Здесь находятся показатели температуры

 

  ds.reset(); // Чтобы начать взаимодействия, необходимо сбросить все предыдущие команды

  ds.write(0xCC); // Датчик должен пропустить команду. Пока что установлено всего одно устройство

  ds.write(0x44); // Датчик должен измерить температуру. Данные будут помещены в цифровое хранилище данных, но не будут выводиться на экран

 

  delay(1000); // Агрегат меряет температуру, необходимо подождать 

 

  ds.reset(); // Подготовьтесь получить значения данных

  ds.write(0xCC);

  ds.write(0xBE); // Даем команду передачи данных температуры из регистров

 

  // Ответ получен, считываем его

  data[0] = ds.read(); // Младший байт температурных показателей считывается

  data[1] = ds.read(); // Очередь старшего

 

  // Формируется окончательно значение температуры:

  //    - Значение склеивается;

  //    - далее умножается на коэффициент,который соответствует  разрешающей способности (к примеру, если установлено 12 бит по умолчанию, то показатель равен - 0,0625)

  float temperature =  ((data[1] << 8) | data[0]) * 0.0625;

 

  // Выводим полученное значение температуры в монитор порта

  Serial.println(temperature);

  

}

 

Библиотеки OneWire для правильной работы датчика

Цифровой датчик DS18B20 не может работать без специального программного обеспечения. Чтобы обмен информацией был корректным, используется протокол 1-Wire. Именно для него создали большую и понятную библиотеку. Она позволяет датчику функционировать полноценно, выполнять большое количество команд и так далее. Если не использовать ее преимущества, то все команды придется записывать и запускать вручную, что не очень удобно.

Чтобы не тратить свое время, нужно реализовывать возможности библиотеки. Для этого вам необходимо скачать ее с официального сайта, архив программы, далее распаковать в папку в каталоге самой платы. Она называется library, что с английского переводиться как – библиотека. Чтобы подключить и начать пользоваться всеми плюсами программы, необходимо активировать команду #include <OneWire.h>.

Если вы хотите ознакомиться со всеми техническими параметрами платы или цифрового датчика, то обязательно воспользуйтесь datasheet. У нас их называют проще – технической документацией.

Какие команды может выполнять библиотека OneWire?

  1. Искать температурный датчик, и перезаписывать его код. Он располагается в массиве addressArray, если устройство не будет идентифицировано, то вы увидите команду false. Команда - search(addressArray).
  2. Производить поисковые работы на первичном приборе. Команда – reset_search().
  3. Сбрасывать шину перед непосредственным подключением к устройству. Команда - reset().
  4. После сброса библиотека может выбрать устройство, на которое будет записываться ROM код. Команда - select(addressArray).
  5. Процесс записи байтов данных на агрегат. Команда - write(byte).
  6. Аналогичная предыдущему варианту команда, но только в том случае, если вы используете паразитное питание. Команда - write(byte, 1).
  7. Процесс прочтения байтов информации с агрегата. Команда - read().
  8. Процесс, который вычисляет код CRC. Команда отличается в зависимости от нужд - crc8(dataArray, length). dataArray – означает выбранный массив, а length длину кода.

Также программа позволяет правильно настраивать питание в самом скетче. Помните, что питание может отличаться. Если оно паразитное, то нужно найти строку 65 и вписать туда ds.write(0x44, 1). Если мы говорим о внешнем варианте, то в том же месте добавляем ds.write(0x44).

Библиотека позволяет не только передавать команды, но и подавать их в виде битов. Основные разновидности таких команд:

Как подключить сразу несколько датчиков?

Схема подключения датчиков ds18b20 фото

Каждый датчик DS18B20 подключается параллельно друг к другу. Чтобы распиновка была возможна, достаточно иметь хотя бы один резистор. Вышеописанная библиотека OneWire позволяет осуществлять сбор информацию сразу со всех подключенных агрегатов. Иногда датчиков может быть сразу больше десяти, тогда резистор должен иметь хорошее сопротивление, но не более 1.6 кОм.

Чтобы температура измерялась более точно, необходим дополнительный резистор на 100 Ом. Он подключается к плате Ардуино. Чтобы узнать с какого датчика была получена та или иная информация, достаточно ознакомиться с их уникальными серийными 64 битными кодами. Он отображается в данных, когда команда выполняется. Помните, что в режиме паразитного и внешнего питания, схемы подключения будут выглядеть по-разному.

Где купить?

Цифровой датчик DS18B20 можно приобрести на нашем сайте «silines.ru». Большой ассортимент разных товаров по выгодной цене. Гарантия качества на всю продаваемую продукцию. Здесь вы найдете одноименный датчик, плату, резисторы и не только. Звоните по телефону на главной странице, и менеджер ответит на все ваши вопросы или осматривайте каталог товаров и оформляйте заказ.