Как подключить датчик DS18B20 к Arduino. Какие библиотеки использовать для работы с DS18B20. Как считывать показания температуры с DS18B20. Как подключить несколько датчиков DS18B20 к одному пину Arduino. Как настроить разрешение измерений DS18B20. Какие преимущества у цифрового датчика DS18B20 перед аналоговыми.
Особенности и характеристики датчика температуры DS18B20
Датчик температуры DS18B20 производства компании Dallas Semiconductor (ныне Maxim Integrated) является одним из самых популярных и удобных цифровых термометров для использования с микроконтроллерами. Рассмотрим его ключевые особенности:
- Диапазон измеряемых температур: от -55°C до +125°C
- Точность измерения: ±0.5°C в диапазоне от -10°C до +85°C
- Разрешение преобразования температуры: 9-12 бит (настраиваемое)
- Уникальный 64-битный серийный код каждого датчика
- Интерфейс 1-Wire для подключения до 127 датчиков на одной шине
- Напряжение питания: 3.0В — 5.5В
- Время преобразования температуры: максимум 750 мс при 12-битном разрешении
DS18B20 выпускается в различных корпусах, наиболее распространенный из которых — TO-92, похожий на небольшой транзистор с тремя выводами. Также доступны влагозащищенные версии датчика в металлическом корпусе на проводе для измерения температуры жидкостей.
Подключение DS18B20 к Arduino: схема и пошаговая инструкция
Подключение датчика DS18B20 к Arduino осуществляется по интерфейсу 1-Wire, что позволяет использовать всего один цифровой пин микроконтроллера для обмена данными. Рассмотрим пошаговую инструкцию по подключению:
- Подключите вывод GND датчика к выводу GND Arduino
- Подключите вывод VDD датчика к выводу 5V Arduino
- Подключите вывод DATA датчика к любому цифровому пину Arduino (например, D2)
- Подключите подтягивающий резистор 4.7 кОм между выводами VDD и DATA
Важно отметить, что подтягивающий резистор необходим для корректной работы шины 1-Wire. Он обеспечивает высокий уровень сигнала на линии данных в состоянии покоя.
Схема подключения DS18B20 к Arduino
Визуальное представление схемы подключения поможет лучше понять соединения:
Arduino DS18B20 5V ---- VDD GND ---- GND D2 ---- DATA | 4.7k резистор | VDD
Такая схема обеспечивает надежное подключение датчика и позволяет считывать показания температуры с высокой точностью.
Использование библиотек OneWire и DallasTemperature для работы с DS18B20
Для удобной работы с датчиком DS18B20 в Arduino IDE рекомендуется использовать две специализированные библиотеки:
- OneWire — обеспечивает базовую поддержку протокола 1-Wire
- DallasTemperature — предоставляет высокоуровневые функции для работы с температурными датчиками Dallas/Maxim
Как установить библиотеки для работы с DS18B20? Выполните следующие шаги:
- Откройте Arduino IDE
- Перейдите в меню «Скетч» > «Подключить библиотеку» > «Управлять библиотеками»
- В поиске введите «OneWire» и установите одноименную библиотеку
- Аналогично найдите и установите библиотеку «DallasTemperature»
После установки библиотек вы сможете использовать их в своих скетчах, подключив соответствующими директивами:
#include
#include
Считывание температуры с DS18B20: базовый скетч Arduino
Рассмотрим простой пример считывания температуры с датчика DS18B20 и вывода результата в монитор порта Arduino:
#include
#include
#define ONE_WIRE_BUS 2 // Пин подключения датчика
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
Serial.print("Температура: ");
Serial.print(temperatureC);
Serial.println("°C");
delay(1000);
}
Этот скетч инициализирует библиотеки, запрашивает измерение температуры и выводит результат каждую секунду. Как интерпретировать полученные данные? Значение temperatureC представляет собой температуру в градусах Цельсия с точностью до десятых долей градуса.
Подключение нескольких датчиков DS18B20 к одному пину Arduino
Одно из главных преимуществ DS18B20 — возможность подключения множества датчиков к одному пину микроконтроллера. Как это реализовать на практике?
- Подключите все датчики параллельно к одному пину данных Arduino
- Используйте один общий подтягивающий резистор 4.7 кОм
- В скетче определите количество подключенных датчиков
Пример скетча для работы с несколькими датчиками:
#include
#include
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures();
for (int i = 0; i < sensors.getDeviceCount(); i++)
{
float tempC = sensors.getTempCByIndex(i);
Serial.print("Датчик ");
Serial.print(i+1);
Serial.print(": ");
Serial.print(tempC);
Serial.println("°C");
}
Serial.println();
delay(1000);
}
Этот скетч автоматически определяет количество подключенных датчиков и выводит показания каждого из них. Какие преимущества дает такой подход? Вы можете легко масштабировать систему измерения температуры без необходимости изменения схемы подключения или программного кода.
Настройка разрешения измерений DS18B20 для оптимизации точности и скорости
DS18B20 позволяет настраивать разрешение преобразования температуры в диапазоне от 9 до 12 бит. Как это влияет на работу датчика?
- 9 бит: ±0.5°C, время преобразования 93.75 мс
- 10 бит: ±0.25°C, время преобразования 187.5 мс
- 11 бит: ±0.125°C, время преобразования 375 мс
- 12 бит: ±0.0625°C, время преобразования 750 мс
Как настроить разрешение DS18B20 программно? Используйте метод setResolution() библиотеки DallasTemperature:
sensors.setResolution(12); // Установка разрешения 12 бит
Выбор оптимального разрешения зависит от конкретной задачи. Для быстрых измерений с меньшей точностью используйте низкое разрешение, для высокоточных измерений - высокое.
Преимущества цифрового датчика DS18B20 перед аналоговыми термисторами
Почему DS18B20 часто предпочтительнее аналоговых датчиков температуры? Рассмотрим ключевые преимущества:
- Цифровой выход: не требует калибровки и аналого-цифрового преобразования
- Высокая точность: ±0.5°C без дополнительных схем
- Широкий диапазон измерений: от -55°C до +125°C
- Возможность подключения множества датчиков на одной шине
- Уникальный идентификатор каждого датчика
- Встроенная схема обнаружения обрыва или короткого замыкания
Эти особенности делают DS18B20 идеальным выбором для многих проектов, требующих точного измерения температуры в широком диапазоне условий.
Практические применения DS18B20 в проектах Arduino
Датчик DS18B20 находит широкое применение в различных проектах на базе Arduino. Рассмотрим несколько интересных идей:
- Метеостанция: измерение температуры воздуха, воды, почвы
- Система мониторинга температуры в серверной комнате
- Контроль температуры в аквариуме или террариуме
- Измерение температуры в системах "умного дома"
- Термостат для управления отоплением или охлаждением
Как реализовать проект цифрового термометра с выводом на LCD дисплей? Подключите DS18B20 и LCD дисплей к Arduino, используйте библиотеку LiquidCrystal для управления дисплеем и выводите показания температуры в реальном времени.
Пример скетча для цифрового термометра с LCD дисплеем
#include
#include
#include
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(void)
{
sensors.begin();
lcd.begin(16, 2);
lcd.print("Температура:");
}
void loop(void)
{
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0);
lcd.setCursor(0, 1);
lcd.print(tempC);
lcd.print(" C");
delay(1000);
}
Этот скетч демонстрирует, как легко создать функциональный цифровой термометр, используя DS18B20 и LCD дисплей. Какие еще проекты вы можете реализовать с помощью этого датчика? Возможности ограничены только вашим воображением!
Dallas 18b20 подключение в категории "Техника и электроника"
Датчик температуры Dallas DS18B20 [#4-1]
На складе в г. Запорожье
Доставка по Украине
18 грн
Купить
Температурний датчик DALLAS18B20
На складе
Доставка по Украине
29 грн
Купить
Атчик температуры Dallas DS18B20 К-92 (14011 )
На складе
Доставка по Украине
47.60 грн
Купить
Датчик температуры DALLAS DS18B20, водонепронецаемый, на проводе
На складе
Доставка по Украине
127 грн
141.11 грн
Купить
Датчик температуры в защищенном корпусе Dallas DS18B20 цифровой. 100 см.
На складе
Доставка по Украине
138.6 — 149 грн
от 2 продавцов
149 грн
Купить
Датчик температуры в защищенном корпусе Dallas DS18B20 цифровой. 200 см.
На складе
Доставка по Украине
269.5 — 289 грн
от 2 продавцов
289 грн
Купить
Термодатчик Dallas DS18b20 1648C4 +233AA (TО-92) цифровой датчик температуры
На складе
Доставка по Украине
100 грн
Купить
Датчик Dallas DS18B20 TO92
Доставка из г. Одесса
142.02 грн
Купить
Микросхема DS18B20 ( 18B20 ) DALLAS , to-92 (из старых запасов , работают и в двухпроводной , и в трехпроводн
На складе в г. Запорожье
Доставка по Украине
37.84 грн
Купить
Датчик температуры DALLAS DS18B20
На складе
Доставка по Украине
45 грн
50 грн
Купить
Датчик температуры Dallas Semiconductor DS18B20-W
Недоступен
311 грн
Смотреть
Датчик температуры Dallas DS18B20 18B20 1-wire (10402)
Недоступен
42 грн
Смотреть
Датчик температуры Dallas DS18B20
Недоступен
24. 50 грн
Смотреть
Цифровой датчик температуры Dallas DS18B20
Недоступен
54 грн
Смотреть
Цифровой датчик температуры Dallas DS18B20
Недоступен
61 грн
Смотреть
Смотрите также
Датчик температуры Dallas DS18B20 цифровой
Недоступен
59 грн
Смотреть
Датчик температуры Dallas DS18B20 цифровой
Недоступен
54.60 грн
Смотреть
Датчик температуры DS18B20, DALLAS, TO-92.
Недоступен
30 грн
Смотреть
DS 18B20 фирмы Dallas датчик температуры для "МАК-Universal"
Недоступен
29.50 грн
Смотреть
DS18B20 Dallas / Maxim - цифровой датчик температуры - термометр 1 Wire
Недоступен
14.99 грн
Смотреть
Датчик температуры DS 18B20 фирмы Dallas
Недоступен
Цену уточняйте
Смотреть
Датчик температуры Dallas Semiconductor DS18B20-W
Недоступен
219 грн
Смотреть
Мы показали выдачу по вашему запросу. Просмотрите больше товаров с частичным совпадением
Цифровой термометр 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. Я неоднократно использовал этот недорогой экранчик. Посмотреть можно в предыдущих видео.
Датчик выпускается в различных корпусах, но самый распространённый это датчик в корпусе ТО-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. и много других примеров. Весь код хорошо закомментрирован, так что всё сразу понятно. Советую посмотреть.
И если вам не трудно, то поставьте пожалуйста лайк этому видео - это поможет другим пользователям найти это видео.
Датчик температуры DS18B20 (совместимый с Arduino)
3
3
3
3
3
3
3
- Продукт
- Описание
- Отзывы (0)
- Что в коробке
Описание
Выделять
- Цена без предварительной записи: 21,5 ринггита
- Гарантия: 12 месяцев (применяются положения и условия)
Напряжение питания: от 3,3 В до 5 В
Диапазон температур: от -55 °C до +125 °C
Интерфейс: цифровой
Размер: 22x32 мм (0,87x1,26 дюйма)
Несмотря на то, что на рынке доступно множество типов датчиков температуры, датчик температуры DS18B20 arduino формы DALLAS является лучшим выбором для приложений, требующих высокой точности и высокой надежности.