- Разновидности, устройство и принцип работы
- Термоэлектрические
- Полупроводниковые
- Пирометрические
- Терморезистивные
- Акустические
- Пьезоэлектрические
- Схемы подключения
- Примение
- Как подобрать?
- Описание датчика DS18B20 для Arduino
- Виды корпусов DS18B20
- Где купить датчик
- Особенности цифрового датчика DS18B20
- Характеристики датчика DS18B20
- Взаимосвязь между разрешением датчика DS18B20 и температурой
- Основные функциональные способности датчика DS18B20
- Принцип работы
- Как формируются и передаются тревожные сигналы Th и Tl
- Распиновка датчика DS18B20
- Подключение DS18B20 к Arduino
- Скетч для DS18B20
- Пример простого скетча для DS18B20
- Скетч для работы с датчиком ds18b20 без delay
- Библиотека DallasTemperature и DS18b20
- Код для Arduino
- Объяснение кода:
- Библиотека OneWire для работы с DS18B20
- Фото подключения датчика
- Как подключить несколько датчиков DS18B20 к Arduino
Разновидности, устройство и принцип работы
В ходе развития и совершенствования технологий датчик температуры, как измерительный прибор, претерпевал многочисленные изменения и модернизации. Благодаря этому сегодня они представлены в большом разнообразии, которое можно разделить по нескольким критериям. Так, в зависимости от способа передачи и отображения данных об измерениях температуры их делят на цифровые и аналоговые. Цифровые приборы являются более современным решением, так как содержащаяся в них информация выводится на экран и передается по электронным каналам связи, аналоговые приборы имеют экран маркировки данных, электрический или механический способ передачи измерений.
В зависимости от принципа действия все датчики можно разделить на:
- термоэлектрический;
- полупроводник;
- пирометрический;
- терморезистивный;
- акустический;
- пьезоэлектрический.
Термоэлектрические
Работа термоэлектрического датчика основана на принципе термопары (см рис. 1): все металлы имеют определенную валентность (количество свободных электронов на внешних атомных орбитах, не участвующих в жестких связях). Под действием внешних факторов, сообщающих дополнительную энергию свободным электронам, они могут покинуть атом, создавая движение заряженных частиц. В случае соединения двух металлов с разным потенциалом выхода электронов и последующего нагревания соединения возникнет разность потенциалов, называемая эффектом Зеебека.
Рис. 1. Устройство термопары
На практике применяются различные типы термоэлектрических датчиков температуры, поэтому согласно п. 1.1 ГОСТ Р 50342-92 их делят на:
- вольфрам-рений-вольфрам-рениевый (ТВР): применяется в средах с высокой рабочей температурой около 2000°С;
- платино-родий-платино-родий (ППР) — отличаются дороговизной и высокой точностью измерений, используются в лабораторных измерениях;
- платино-родий-платиновый (ТПП) – снабжен защитной металлической трубкой и керамической изоляцией, имеет высокий температурный предел;
- хромель-алюмель (ХА) – широко применяемый в промышленности, способный перекрывать диапазон температур до 1200°С, применяемый в кислых средах;
- хромель-копелевые (ХК) – характеризуются средним температурным показателем, монтируются только в неагрессивных средах;
- хромель-константановые (ХК) — актуальны для газовых смесей и сжиженных аэрозолей нейтрального или слабокислого состава;
- никросил-нисил (ТНН) – применяется для приборов в среднем диапазоне температур, но имеет длительный срок службы;
- медно-константановые (ТМК) – характеризуются наименьшим пределом измерения до 400°С, но устойчивы к влаге и некоторым категориям агрессивных сред;
- железо-константановые (ТГК) — применяются в среде со сжиженной атмосферой или в вакуумном пространстве.
Такое разнообразие датчиков температуры на основе термопары позволяет охватить любую область человеческой деятельности.
Полупроводниковые
Их изготавливают на основе кристаллов с заданной вольт-амперной характеристикой. Такие датчики температуры работают в режиме полупроводникового ключа, аналогично классическому биполярному транзистору, где степень нагрева сравнима с потенциалом, подаваемым на базу. По мере повышения температуры полупроводниковый датчик начинает выдавать более высокое значение тока. Как правило, сам полупроводник для измерения нагрева не используется, а подключается через схему усилителя (см рис. 2).
Рис. 2. Подключение полупроводникового датчика через усилитель
Отличаются широким диапазоном измерений и возможностью настройки датчика под параметры работы оборудования. Они относятся к высокоточному типу, мало зависят от длительности операции. Имеют небольшие габариты, поэтому легко устанавливаются в схемы, радиоэлементы и т.п
Пирометрические
Работают они благодаря специальным датчикам — пирометрам, которые позволяют улавливать малейшие колебания температуры рабочей поверхности любого предмета. Сам чувствительный элемент представляет собой массив, реагирующий на определенную частоту температурного диапазона. Этот принцип лежит в основе измерений бесконтактным термометром, получившим широкое распространение во время борьбы с коронавирусом. Кроме того, его применение активно используется для тепловизионного контроля элементов конструкций, оборудования, зданий и сооружений.
Рис. 3. Принцип работы пирометрического датчика
Терморезистивные
Такие датчики температуры изготавливаются на основе термисторов — устройств с определенной зависимостью сопротивления от степени нагрева основного материала. С повышением температуры меняется и проводимость резистора, поэтому можно следить за состоянием нужного объекта.
Основным недостатком терморезистора является малый диапазон измеряемой температуры, но он может обеспечить хороший шаг измерения и высокую точность в десятых и сотых долях градуса Цельсия. Поэтому их обычно включают в схему через усилитель, расширяющий пределы действия.
Акустические
Датчики акустической температуры работают по принципу определения скорости прохождения звуковых колебаний в зависимости от температуры материала или поверхности. Сам датчик напрямую сравнивает скорость звука, генерируемого источником, которая будет различаться в зависимости от степени нагрева (см рис. 4). Этот тип является бесконтактным и позволяет проводить измерения в труднодоступных местах или в установках повышенной опасности.
Рис. 4. Звуковой датчик температуры
Пьезоэлектрические
Работа датчика основана на эффекте распространения колебаний кристалла кварца при прохождении электрического тока. Но, в зависимости от температуры окружающей среды, будет меняться и частота колебаний кристалла. Принцип установки изменения температуры заключается в измерении частоты колебаний и последующем сравнении ее с установленной градацией оценок для разных температур.
Схемы подключения
Основные отличия в подключении датчика температуры определяются сферой его применения и конструктивными особенностями. Итак, в рамках статьи рассмотрим несколько самых распространенных и интересных вариантов. Это соединения, которые используют двухпроводную и трехпроводную схему.
Рис. 5. Двухпроводное подключение
На рис. 5 показано двухпроводное подключение измерительного прибора. Этот принцип рекомендуется для всех датчиков температуры с небольшим расстоянием до контролируемого объекта. Так как сопротивление самого чувствительного элемента Rt не будет сильно изменяться по отношению к сопротивлению соединительных выводов R1 и R2 соответственно, поправка измерения будет минимальной.
Рис. 6. Трехпроводное подключение
На больших расстояниях — от 150 м и более — датчик необходимо подключать по трехпроводной схеме, при которой значительно снижается погрешность сопротивления на выводах R1, R2, R3.
Рис. 7. Схема подключения датчика температуры двигателя
Практически во всех современных автомобилях осуществляется постоянный контроль температурных параметров двигателя. Поэтому использование датчика является обязательным требованием безопасности. По двухпроводной схеме (рисунок 7) датчик подключается одним выходом к отдельному концевому выключателю колокола, не имеющему связи с цепью. А второй выход подключается к блоку сигнализации в установленном порядке, согласно модели.
Рис. 8. Схема подключения цифрового датчика температуры
На рис. 8 показан пример активации цифрового датчика Dallas. Это модель с тремя выводами, первый из которых, согласно распиновке GND, подключается к выводу земли микроконтроллера, второй DATA к выводу 2, а третий к выводу питания +5 В. 4,7 кОм соединяется между третьей и второй ногами.
Примение
Область применения датчиков температуры охватывает бытовую технику, а также общепромышленное оборудование, сельскохозяйственную промышленность, военную промышленность и аэрокосмическую отрасль. Каждый из вас может найти их дома в отопительных приборах: котлах, духовках, мультиварках или хлебопечках.
В тяжелой промышленности термодатчики позволяют контролировать степень нагрева печей, воздуха в рабочей зоне, состояние поверхностей трения. В медицине их используют для контроля температуры в труднодоступных местах или для упрощения различных процедур.
Многие автолюбители часто сталкиваются с датчиками температуры, следящими за состоянием масла или другой охлаждающей жидкости. На железнодорожной сети они позволяют контролировать нагрев букс и колесных пар. В энергетике они используются для проверки контактных соединений и качества сцепления с поверхностью.
Как подобрать?
При выборе датчика температуры необходимо руководствоваться следующими критериями:
- если датчик находится в контакте или находится внутри измеряемой среды, то берется контактная модель, если вне объекта, то бесконтактная;
- условия и состояние среды, в которой он будет работать (влажность, агрессивные вещества и т д.), должны соответствовать возможностям датчика;
- прохождение и калибровка измерений должны обеспечивать удобную работу как датчика, так и оборудования;
- если датчик подлежит замене в процессе эксплуатации, то устанавливаются варианты замены;
- при выборе датчика температуры взамен неисправного лучше использовать его VIN-код;
- предел рабочей температуры должен охватывать все возможные теплотворные способности, некоторые из которых показаны в следующей таблице.
Таблица: Температурные пределы датчиков термоэлектрического типа
Пишет | Сочинение | Диапазон температур |
Т | медь / константан | От -250°C до 400°C |
Дж | железо / константан | От -180°С до 750°С |
Мне | хромель/константан | От -40ºC до 900ºC |
К | хромель/алюмель | От -180ºC до 1200ºC |
Да | платина-родий (10%) / платина | От 0°C до 1700°C |
Р | платина-родий (13%) / платина | От 0°C до 1700°C |
Б | платино-родий (30%) / платино-родий (6 %) | От 0°С до 1800°С |
Север | нихромель / нисил | От -270°С до 1280°С |
ГРАММ | вольфрам / рений (26 %) | От 0°С до 2600°С |
С | вольфрам-рениевый (5%) / вольфрам-рениевый (26 %) | от 20°С до 2300°С |
Д | вольфрам-рениевый (3%) / вольфрам-рениевый (25 %) | От 0°С до 2600°С |
Описание датчика DS18B20 для Arduino
DS18B20 — это цифровой датчик температуры с множеством полезных функций. По сути, DS18B20 — это полноценный микроконтроллер, который может хранить значение измерения, сигнализировать о выходе температуры за установленные пределы (мы можем устанавливать и изменять пределы), изменять точность измерения, способ взаимодействия с контроллером и многое другое. Все это в очень маленькой упаковке, которая также доступна в водонепроницаемой версии.
Микросхема имеет три вывода, только один из которых используется для данных, два других — земля и питание. Количество проводов можно уменьшить до двух, используя схему с паразитным питанием и подключив Vdd к земле. К одному кабелю передачи данных одновременно можно подключить несколько датчиков DS18B20, и на плате Arduino будет задействован только один контакт.
Виды корпусов DS18B20
Датчик температуры DS18B20 имеет различные типы корпусов. Вы можете выбрать один из трех: 8-контактный SO (150 мил), 8-контактный µSOP и 3-контактный TO-92. Последний является наиболее распространенным и выполнен в специальном водонепроницаемом корпусе, благодаря чему его можно безопасно использовать под водой. Каждый датчик имеет 3 контакта. Для корпуса ТО-92 нужно смотреть на цвет проводов: черный — масса, красный — питание, а белый/желтый/синий — сигнал. В интернет-магазинах можно купить готовый модуль DS18B20.
Где купить датчик
Естественно, DS18B20 дешевле всего купить на Алиэкспресс, хотя он и продается в любом специализированном российском интернет-магазине с ардуино.
Водонепроницаемый датчик температуры DS18B20 с кабелем длиной 1 м ![]() |
Набор из 10 жетонов DS18B20 TO92![]() |
Модуль DS18B20 для простого подключения к Arduino от Keyestudio![]() |
Беспроводной модуль DS18B20 на ESP8266 ESP-01 ESP-01S для проектов умного дома![]() |
Сенсорный экран DS18B20 для платы D1 MINI — беспроводная передача данных![]() |
Датчик DS18B20 с модулем для подключения к Arduino![]() |
Особенности цифрового датчика DS18B20
- Погрешность измерения не превышает 0,5 С (для температур от -10 С до +85 С), что позволяет точно определить значение температуры. Не требует дополнительной калибровки.
- Температурный диапазон измерений находится в пределах от -55 С до +125 С.
- Датчик питается напряжением от 3,3В до 5В.
- Можно программно установить максимальное разрешение 0.0625C, максимальное разрешение 12 бит.
- Есть функция будильника.
- Каждое устройство имеет свой уникальный серийный код.
- Никаких дополнительных внешних элементов не требуется.
- К одной линии связи можно подключить до 127 датчиков одновременно.
- Информация передается по протоколу 1-Wire.
- Для подключения к микроконтроллеру необходимо всего 3 провода.
- Есть так называемый режим паразитного питания — питание осуществляется напрямую от линии связи. В этом случае для подключения необходимо всего 2 провода. Важно, что в этом режиме не гарантируется корректная работа при температуре выше 100С. Режим паразитной мощности обычно используется для приложений дистанционного измерения температуры.
Память датчиков бывает двух видов: оперативная и энергонезависимая: SRAM и EEPROM. Последний содержит регистры конфигурации и регистры TH, TL, которые можно использовать как регистры общего назначения, если они не используются для указания диапазона допустимых значений температуры.
Основная задача DS18B20 — определение температуры и преобразование результата в цифровую форму. Мы можем самостоятельно установить требуемое разрешение, установив количество разрядов точности: 9, 10, 11 и 12. В этих случаях разрешения будут соответственно равны 0,5С, 0,25С, 0,125С и 0,0625С.
При включении датчик находится в состоянии покоя. Чтобы начать измерение, контроллер Arduino выполняет команду «преобразование температуры». Результат будет сохранен в 2 байтах регистра температуры, после чего датчик вернется в исходное состояние сна. Если схема подключена в режиме внешнего питания, микроконтроллер регулирует состояние преобразования. Во время выполнения команды линия находится на низком уровне, после завершения программы линия переходит на высокий уровень. Этот метод неприемлем при работе с паразитной емкостью, так как шина всегда должна оставаться на высоком уровне.
Полученные измерения температуры сохраняются в SRAM датчика. Байты 1 и 2 хранят полученное значение температуры, 3 и 4 хранят пределы измерений, 5 и 6 зарезервированы, 7 и 8 используются для высокоточного определения температуры, последние 9 байтов хранят устойчивый к шуму код CRC.
Характеристики датчика DS18B20
Датчик температуры DS18B20 богат не только своей конструкцией, но и работой. Вот основные из них:
- Счетчик ДС18Б20 питается от напряжения, величина которого варьируется от 3 вольт до 5,5 вольт;
- Датчик температуры DS18B20 способен измерять температуру в диапазоне от -55°C до 125°C;
- Полоса пропускания датчика DS18B20 достигает 12 бит;
- Значение погрешности DS18B20 составляет (+,-) 0,5°С;
- Замедленность хода измерителя ДС18Б20 относительно любого прибора не превышает единицы.
Взаимосвязь между разрешением датчика DS18B20 и температурой
Начнем с разрешения в девять бит. При этом значении температура может принимать следующие значения:
- 0,00°С;
- 0,50°С.
Таким образом, при разрешении 9 бит для вышеуказанных значений температуры можно выполнить 10,5 измерений в секунду.
При расширении на 10 бит температура принимает следующие значения:
- 0,00°С;
- 0,25°С;
- 0,50°С;
- 0,75°С;
Можно сделать вывод, что при разрешении 10 бит для вышеуказанных значений температуры можно выполнить 5,3 измерения/сек.
При 11-битном разрешении температура может иметь следующий вид:
- 1) 0,00°С;
- 2) 0,125°С;
- 3) 0,25°С;
- 4) 0,375°С;
- 5) 0,50°С;
- 6) 0,625°С;
- 7) 0,75°С;
- 8) 0,875°С.
Таким образом, при разрешении 11 бит для вышеуказанных значений температуры можно выполнить 2,6 измерения/сек.
При разрешении 12 бит температура может принимать следующие значения:
- 1) 0,00°С;
- 2) 0,0625°С;
- 3) 0,125°С;
- 4) 0,1875°С;
- 5) 0,25°С;
- 6) 0,3125°С;
- 7) 0,375°С;
- 8) 0,4375°С;
- 9) 0,50°С;
- 10) 0,5625°С;
- 11) 0,625°С;
- 12) 0,6875°С;
- 13) 0,75°С;
- 14) 0,8125°С;
- 15) 0,875°С;
- 0,9375°С.
Это означает, что с 12-разрядным расширением для вышеуказанных значений температуры можно выполнить 1,3 измерения/сек.
Основные функциональные способности датчика DS18B20
Датчик температуры DS18B20 имеет в своем функционале сразу несколько важных команд:
- Возможность преобразования температуры. (Эта возможность может поместить температуру в двухбайтный блок ОЗУ, после чего датчик переходит в состояние пониженного энергопотребления. В этом состоянии DS18B20 считывает код данных и определяет режим состояния процесса);
- Запись команды памяти. (Позволяет хранить в ОЗУ DS18B20 три байта данных. При этом следует учитывать, что ведущее устройство передает информацию с самого младшего бита);
- Способность читать память. (Используется для чтения оперативной памяти устройства. Данные сбрасываются с младших битов или байтов, при этом при необходимости этой командой можно остановить сброс данных);
- Команда копирования памяти (Помогает скопировать все данные из внутренней памяти устройства в блок EEPROM, что приводит к большей реализации мощностей системы);
- Возможность сброса EEPROM. (Это позволяет регистрам отдыхать, перезагружая все значения в блоках. Также только после сброса DS18B20 происходит процесс чтения ОЗУ из памяти устройства и сообщается его состояние).
Принцип работы
Основная функция микросхемы DS18B20 — преобразование показаний встроенного датчика температуры в цифровой код. Это преобразование зависит от настроенного пользователем разрешения преобразования, которое варьируется от 9 до 12 бит (0,5°-0,625°C). Если никакие настройки не были сделаны, настройка регистра конфигурации составляет 12 бит.
В исходном состоянии DS18B20 находится в состоянии покоя, то есть на низком уровне мощности. Для начала измерений микроконтроллер отправляет сигнал 0x44, после чего полученные данные сохраняются в регистре, а датчик переходит в «спящий» режим».
При работе цифрового датчика температуры DS18B20 от независимого источника питания микроконтроллер может управлять процессом выполнения команды 0x44, измеряющей температуру. Поэтому датчик температуры DS18B20 будет выдавать логический «0» при преобразовании показаний температуры и логическую «1», если процесс преобразования завершен.
Если микросхема запитана «паразитным способом», то контроль логических «0» и «1» невозможен, так как на шине будет постоянно работать высокий уровень питающего напряжения.
После приема и обработки сигнала с датчика температуры на микросхеме DS18B20 полученные данные в градусах Цельсия сохраняются в виде 16-битного числа со знаком (S), которое отвечает за знак температуры «+» o.
Если показание температуры больше «0», то показатель S=0, если значение температуры отрицательное, то S=1.
Как формируются и передаются тревожные сигналы Th и Tl
После преобразования показаний температуры в 16-разрядный код полученное число сравнивается со значениями Th и Tl, находящимися в регистре памяти (EEPROM) микропроцессора, то есть во втором и третьем байтах.
Если полученные данные, 11–4 разряда регистра, превышают Th или опускаются ниже параметра Tl, то в микросхеме формируется сигнал тревоги. Но на этом измерения не заканчиваются, и при падении Th ниже или превышении Tl заданного диапазона происходит сброс состояния «Авария.
Если необходимо самостоятельно идентифицировать один из датчиков, выдающий сигнал «Тревога», то микроконтроллер с помощью команды ЭЧ проведет тестирование каждого датчика. При изменении параметров Th и Tl, выше или ниже значений, занесенных в реестр, он выдаст код устройства с нарушениями температурного режима.
Распиновка датчика DS18B20
Рисунок 2 – Распиновка датчика температуры DS18B20 в корпусе ТО-92 и в водонепроницаемом корпусе
GND — контакт заземления.
DQ — это 1-проводная шина данных, которая должна быть подключена к цифровому выводу микроконтроллера.
Вывод VDD подает питание на датчик, которое может находиться в диапазоне от 3,3 В до 5 В.
Подключение DS18B20 к Arduino
DS18B20 — цифровой датчик. Цифровые датчики передают измеренное значение температуры в виде определенного двоичного кода, который подается на цифровые или аналоговые выводы ардуино и затем декодируется. Коды могут быть самые разные, ds18b20 работает по протоколу данных 1-wire. Мы не будем вдаваться в подробности этого цифрового протокола, укажем лишь минимум, необходимый для понимания принципов взаимодействия.
Обмен информацией в 1-Wire происходит за счет следующих операций:
- Инициализация: определение последовательности сигналов, с которой начинается измерение и другие операции. Ведущее устройство посылает импульс сброса, после чего датчик должен выдать импульс присутствия, свидетельствующий о готовности к выполнению операции.
- Запись данных: на датчик передается один байт данных.
- Чтение данных: от датчика получен байт.
Для работы с датчиком нам понадобится программное обеспечение:
- Arduino-IDE
- Библиотека OneWire, если вы используете несколько датчиков на шине, вы можете использовать библиотеку DallasTemperature. Он будет работать поверх OneWire.
Из комплекта вам понадобится:
- Один или несколько датчиков DS18B20;
- Микроконтроллер Ардуино;
- Соединители;
- Резистор 4,7 кОм (если подключен датчик, пойдет резистор номиналом от 4 до 10К);
- Печатная плата;
- USB-кабель для подключения к компьютеру.
Датчик подключается к плате Arduino UNO просто: GND датчика температуры подключается к GND Arduino, Vdd подключается к 5V, данные подключаются к любому цифровому выводу.
В режиме вихревой мощности вывод Vdd датчика подключается к GND на Arduino; в этом случае полезны только два кабеля. Без необходимости лучше не использовать паразитный режим, так как производительность и стабильность могут ухудшиться.
Скетч для DS18B20
Алгоритм получения информации о температуре в скетче состоит из следующих шагов:
- Определение адреса датчика, проверка его подключения.
- На датчик посылается команда с требованием считать температуру и занести измеренное значение в регистр. Процедура занимает больше времени, чем остальные, занимает около 750 мс.
- Дана команда на чтение информации из реестра и отправка полученного значения в «монитор порта»,
- При необходимости он будет конвертирован в градусы Цельсия/Фаренгейта.
Пример простого скетча для DS18B20
Простейшая схема работы с цифровым датчиком выглядит следующим образом. (В скетче мы использовали библиотеку OneWire, о которой подробнее поговорим чуть позже).
#включать
Скетч для работы с датчиком ds18b20 без delay
Вы можете немного усложнить программу для ds18b20, чтобы избавиться от функции delay(), которая замедляет скетч.
#включать
Библиотека DallasTemperature и DS18b20
В наших скетчах мы можем использовать библиотеку DallasTemperature, которая упрощает некоторые аспекты работы с датчиком ds18b20 на 1-Wire. Пример эскиза:
#включать
Код для Arduino
Следующая схема даст вам полное представление о том, как считывать показания температуры с датчика температуры DS18B20, и может послужить основой для дальнейших практических экспериментов и проектов.
#включать
Вот как выглядит вывод на мониторе последовательного порта.
Рис. 8. Вывод показаний датчика температуры DS18B20 на монитор последовательного порта
Объяснение кода:
Скетч начинается с включения библиотек OneWire.h и DallasTemperature.h, объявляющих вывод Arduino, к которому подключен сигнальный вывод датчика.
#включать
Затем мы создаем объект OneWire, передавая выходной сигнал датчика его конструктору. Этот объект OneWire позволяет нам взаимодействовать с любым устройством 1-Wire, а не только с DS18B20. Для связи с датчиком DS18B20 нам нужно создать библиотечный объект DallasTemperature и передать ему в качестве параметра ссылку на объект OneWire.
// настроить объект oneWire для связи с любым устройством OneWire OneWire oneWire(ONE_WIRE_BUS); // передать ссылку на oneWire в библиотеку DallasTemperature DallasTemperature Sensors(&oneWire);
После создания объекта DallasTemperature мы можем запустить следующие простые команды для взаимодействия с датчиком.
- Функция begin() ищет датчики, подключенные к шине, и устанавливает для каждого битовое разрешение (12 бит.
- Функция requestTemperatures() отправляет команду всем датчикам на шине для выполнения преобразования температуры.
- Функция getTempCByIndex(deviceIndex) считывает и возвращает показания температуры с датчика. DeviceIndex — это не что иное, как расположение датчика на шине. Если вы используете на шине только один DS18B20, установите для этого параметра значение 0.
Библиотека OneWire для работы с DS18B20
DS18B20 использует для обмена информацией с ардуино протокол 1-Wire, для которого уже написана отличная библиотека. Его можно и нужно использовать, чтобы не реализовывать все возможности вручную. Вы можете скачать OneWire здесь. Для установки библиотеки скачайте архив, разархивируйте его в папку с библиотекой вашей директории Arduino. Библиотека подключается с помощью команды #include
Основные команды библиотеки OneWire:
- search(addressArray): поиск датчика температуры; если он найден, ваш код записывается в массив addressArray; в противном случае оно ложно.
- reset_search() — поиск первого устройства.
- reset(): выполняет сброс шины перед обменом данными с устройством.
- select(addressArray) — устройство выбирается после операции перезагрузки, записывается его код ПЗУ.
- запись (байт): на устройство записывается один байт информации.
- write(byte, 1) — аналогично записи(byte), но в режиме паразитного питания.
- read() — считывает байт информации с устройства.
- crc8(dataArray, length) — вычисление кода CRC dataArray — выбранный массив, length — длина кода.
Важно правильно задать режим питания в скетче. Чтобы иметь возможность паразитировать, в строке 65 вы должны написать ds.write(0x44, 1);. Для внешнего питания напишите ds.write(0x44) в строке 65).
Запись позволяет отправить команду датчику температуры. Основные команды, представленные в битовой форме:
- 0x44: измерить температуру, записать полученное значение в SRAM.
- 0x4E: Запишите 3 байта в третий, четвертый и пятый байты SRAM.
- 0xBE: 9-байтовое последовательное чтение из SRAM.
- 0x48 — Копирует третий и четвертый байты из SRAM в EEPROM.
- 0xB8: Копирует информацию из EEPROM в третий и четвертый байты SRAM.
- 0xB4: возвращает тип источника питания (0: паразитный, 1: внешний).
Фото подключения датчика
Вот как это выглядит на практике
здесь, правда, использовался пин 2, т.е.
OneWire дс(2);
ширина = «100%» размер = «4»>
Как подключить несколько датчиков DS18B20 к Arduino
Рассмотрим вариант, когда нам нужно использовать серию датчиков в сборке. Для примера возьмем три датчика температуры DS18B20.
Мы заменили микроконтроллер на Micro.
Пример эскиза:
// библиотека для работы с протоколом 1-Wire #include