- Платы Ардуино
- Обучение Ардуино
- Мой блог
- Уроки
- Урок № 1 "Пишем свой первый скетч"
- Урок № 2 "Подключение фоторезистора"
- Урок № 3 "Подключение пищалки(BUZZER)
- Урок № 7 "Модуль часов RTC DS3231"
- Урок № 8 - "Шаговый двигатель 28BYJ-48"
- Урок № 10 - "ИК пульт на Ардуино"
- Урок № 11- "Сканер отпечатка пальца"
- Урок № 12- "Датчик наклона SW-200D"
- Урок № 13- "Гирлянда светодиодная WS2812b"
- Книги
- Мой YOUTUBE
Цифровой термометр DS18B20
Цифровой термометр DS18B20
Сегодня я расскажу, как подключить вот такой маленький, но очень точный цифровой термометр DS18B20.
Подключение этого термометра производится по шине 1 wire. Это позволяет всего по 1 проводу подключить до 127 термометров DS18B20.
- Разберём несколько скетчей.
- Первый как всегда – это пример из библиотеки, но с моими комментариями.
- Научимся получать адрес датчика.
- Подключать один или несколько датчиков температур.
- Измерим температуру воды из чайника, а затем вскипятим датчик и посмотрим, что он нам на это скажет.
- Подключим дополнительную библиотеку от компании Даллас.
- И напоследок по традиции подключим датчик к дисплею НОКИА 5110.
- Это уже не первый урок про этот дисплей, если интересно посмотрите предыдущие.
Давайте посмотрим, как датчик температуры DS18B20 будет вести себя в экстремальных условиях.
Сначала мы опустим его в кипящую воду, а потом заморозим в морозильной камере.
Как можно увидеть, что термометр работает правильно, он достаточно быстро набрал температуру в 99°C.
Измеряемый диапазон температур от -55°C до +125°C, и мы видим, что датчик справляется с такой температурой.
Все датчики цифровые – это говорит о том, что им не надо переводить данные из аналогового в цифровой сигнал, и каждый имеет свой уникальный адрес, установленный на заводе и это, даёт возможность программе обращаться к конкретному датчику из множества других подключенных всего по одному проводу.
В видео я измерил, какая же температура в чашке чая. Для этого я вскипятил чайник и налил кипяток в чашку. Вы думаете, наверное, что там тоже 100°C? А вот и нет там всего лишь 78°C.
Теперь самой долгое измерение. Не знаю по какой причине, но опускалась температура намного дольше чем поднималась. Температура вверх поднимается очень быстро. Мы это только что видели.
Для проверки на холод я положил датчик в морозильную камеру холодильника и посмотрел как он справляется с отрицательной температурой. Ничего другого под рукой не нашлось, и самое холодное место у меня дома – это холодильник.
С +24°C до - 15°C температура опускалась целых 11 минут.
Поэтому я здесь ускорил процесс чтобы не долго не ждать.
Все примеры показанные в видео можно скачать по ссылкам в описании к видео.
Они хорошо прокомментированы и доступны для повторения даже людям далёким от программирования.
Дальше я расскажу про этот датчик и про примеры подробнее.
Каждый датчик может работать с разрешением от 9 до 12 бит. Что это такое и на что влияет я расскажу дальше в уроке.
Измеряемый диапазон температур от -55°C до +125°C .
Точность датчика 0.5°C в диапазоне температур от –10°C до +85°C. В другом диапазоне точность меньше.
По умолчанию установлена температура в Цельсиях.
Для вывода температура на дисплей я использовал НОКИА 5110. Я неоднократно использовал этот недорогой экранчик. Посмотреть можно в предыдущих видео.
Теперь давайте рассмотрим сам датчик DS18b20.
Датчик выпускается в различных корпусах, но самый распространённый это датчик в корпусе ТО-92. Он похож на транзистор поэтому не перепутайте.
Каждый такой датчик температуры имеет свой уникальный 64 битный код. Который позволяет обращаться к конкретному датчику если их много и все они подключены всего по одному проводу.
Вы можете использовать 127 термометров и подключить их всего на 1 пин контроллера Ардуино.
Выводы расположены так.
Вывод данных надо соединить с выводом питания +5 вольт через резистор 4,7 кОм.
При таком подключении в неактивном состоянии на шине будет логическая единица, так как он будет притянут к + питания.
Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами и оно может измениться от 5,1 кОм до 1 кОм. Для кабелей с высоким сопротивлением жил надо использовать более высокое сопротивление, а если есть помехи – выбирать более низкое сопротивление и использовать кабель с более большим сечением провода.
Если вы применяете кабель «витая пара», то длина может быть увеличена да 300 метров!!!
Рассмотрим подключение к Ардуино.
Я подключил к пину 12 Ардуино, вы же можете подключить к любому. Не забудьте сменить номер в скетче, там везде прописан 12 вывод. Вывод GND надо подключить к выводу GND Ардуино. Вывод данных, надо подключить к пину Ардуино. +5 вольт подключается к 5 вольтам Ардуино.
Как я уже говорил соединение цифрового термометра DS18B20 производится по шине 1 WIRE.
Для Ардуино разработана специальная библиотека, скачать её можно по ссылке в описании.
Она позволяет подключить до 127 датчиков всего по 1 проводу.
Можно работать и вообще без питания правда. Это называется метод Паразитного питания. Для этого вывод +5 вольт должен быть подключен к выводу GND.
Измерять температуру в таком режиме можно будет только до +100°C, а не до +125°C.
Поговорим о температурном преобразователе DS18B20
Как я уже говорил вы можете установить разрешение 9, 10, 11 или 12 бит.
При этом время измерения и точность будет меняться.
Посмотрите таблицу.
По умолчанию стоит 12 бит.
В видео рассмотрены скетчи из библиотеки 1WIRE. и много других примеров. Весь код хорошо закомментрирован, так что всё сразу понятно. Советую посмотреть.
И если вам не трудно, то поставьте пожалуйста лайк этому видео - это поможет другим пользователям найти это видео.