Цифровой термометр DS18B20

Цифровой термометр DS18B20

Сегодня я расскажу, как подключить вот такой маленький, но очень точный цифровой термометр DS18B20.

Цифровой термометр DS18b20

Подключение этого термометра производится по шине 1 wire. Это позволяет всего по 1 проводу подключить до 127 термометров DS18B20.

  • Разберём несколько скетчей.
  • Первый как всегда – это пример из библиотеки, но с моими комментариями.
  • Научимся получать адрес датчика.
  • Подключать один или несколько датчиков температур.
  • Измерим температуру воды из чайника, а затем вскипятим датчик и посмотрим, что он нам на это скажет.
  • Подключим дополнительную библиотеку от компании Даллас.
  • И напоследок по традиции подключим датчик к дисплею НОКИА 5110.
  • Это уже не первый урок про этот дисплей, если интересно посмотрите предыдущие.

Давайте посмотрим, как датчик температуры DS18B20 будет вести себя в экстремальных условиях.
Сначала мы опустим его в кипящую воду, а потом заморозим в морозильной камере.
Как можно увидеть, что термометр работает правильно, он достаточно быстро набрал температуру в 99°C. 
Измеряемый диапазон температур от -55°C до +125°C, и мы видим, что датчик справляется с такой температурой.

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

В видео я измерил, какая же температура в чашке чая. Для этого я вскипятил чайник и налил кипяток в чашку. Вы думаете, наверное, что там тоже 100°C? А вот и нет там всего лишь 78°C. 

Теперь самой долгое измерение. Не знаю по какой причине, но опускалась температура намного дольше чем поднималась. Температура вверх поднимается очень быстро. Мы это только что видели.
Для проверки на холод я положил датчик в морозильную камеру холодильника и посмотрел как он справляется с отрицательной температурой. Ничего другого под рукой не нашлось, и самое холодное место у меня дома – это холодильник.
Нокиа 5110 и ds18b20
  
С +24°C до - 15°C температура опускалась целых 11 минут.
Поэтому я здесь ускорил процесс чтобы не долго не ждать.
Все примеры показанные в видео можно скачать по ссылкам в описании к видео.
Они хорошо прокомментированы и доступны для повторения даже людям далёким от программирования.

Дальше я расскажу про этот датчик и про примеры подробнее.
Каждый датчик  может работать с разрешением от 9 до 12 бит. Что это такое и на что влияет я расскажу дальше в уроке.
Измеряемый диапазон температур от -55°C до +125°C .
Точность датчика 0.5°C в диапазоне температур от –10°C до +85°C. В другом диапазоне точность меньше.
По умолчанию установлена температура в Цельсиях.
Для вывода температура на дисплей я использовал  НОКИА 5110. Я неоднократно использовал этот недорогой экранчик. Посмотреть можно в предыдущих видео.

Теперь давайте рассмотрим сам датчик DS18b20.

Датчик выпускается в различных корпусах, но самый распространённый это датчик в корпусе ТО-92. Он похож на транзистор поэтому не перепутайте.

корпуса ds18b20

Каждый такой датчик температуры имеет свой уникальный 64 битный код. Который позволяет обращаться к конкретному датчику если их много и все они подключены всего по одному проводу.
Вы можете использовать 127 термометров и подключить их всего на 1 пин контроллера Ардуино.

Выводы расположены так. 

РАСПОЛОЖЕНИЕ ВЫВОДОВ 18B20

Вывод данных надо соединить с выводом питания +5 вольт через резистор 4,7 кОм.
При таком подключении в неактивном состоянии на шине будет логическая единица, так как он будет притянут к + питания.
Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами и оно может измениться от 5,1 кОм до 1 кОм. Для кабелей с высоким сопротивлением жил надо использовать более высокое сопротивление, а если есть помехи – выбирать более низкое сопротивление и использовать кабель с более большим сечением провода.
Если вы применяете кабель «витая пара», то длина может быть увеличена да 300 метров!!!

Рассмотрим подключение к Ардуино.

Подключение ds18b20 к Ардуино
Я подключил к пину 12 Ардуино, вы же можете подключить к любому. Не забудьте сменить номер в скетче, там везде прописан 12 вывод. Вывод GND надо подключить к выводу GND Ардуино. Вывод данных, надо подключить к пину Ардуино. +5 вольт подключается к 5 вольтам Ардуино.

Как я уже говорил соединение цифрового термометра DS18B20 производится по шине 1 WIRE. 
Для Ардуино разработана специальная библиотека, скачать её можно по ссылке в описании.
Она позволяет подключить до 127 датчиков всего по 1 проводу.
Можно работать и вообще без питания правда. Это называется метод Паразитного питания. Для этого вывод +5 вольт должен быть подключен к выводу GND.
 Измерять температуру в таком режиме можно будет только до +100°C, а не до +125°C.

Поговорим о температурном преобразователе DS18B20
Как я уже говорил вы можете установить разрешение 9, 10, 11 или 12 бит.
При этом время измерения и точность будет меняться.
Посмотрите таблицу.
преобразование ds18b20

По умолчанию стоит 12 бит. 
В видео рассмотрены скетчи из библиотеки 1WIRE. и много других примеров. Весь код хорошо закомментрирован, так что всё сразу понятно. Советую посмотреть.

И если вам не трудно, то поставьте пожалуйста лайк этому видео - это поможет другим пользователям найти это видео.