Температурные датчики сегодня широко распространены и могут быть использованы практически в любой сфере. В качестве примера можно привести применение температурного датчика для фиксирования температуры окружающей среды в автомобиле.

На сайте http://skidkosnab.ru/ представлен широкий выбор температурных датчиков. В данной публикации будет описан метод установки подобного устройства на отечественный автомобиль.

Устанавливаем температурный датчик на Granta

Устанавливаем температурный датчик на Granta

Как ни странно, но по какой-то причине, температурный датчик не устанавливается на отечественные автомобили. Между тем, подобная опция является распространённой, если говорить об иномарках.

Многие владельцы практически всегда пользуются ей. Исправить большинство заводских недоделок на этой модели отечественного автомобиля не так сложно. А если подобрать один из самых доступных датчиков, то вся процедура обойдётся в 250 рублей.

Ниже представлено всё, что потребуется в дальнейшем:

  • гофра (3 метра);
  • провод (3 метра);
  • круглая клемма;
  • датчик;
  • 2 колодки с контактами.

Однако перед самой установкой настоятельно рекомендуется осуществить проверку возможность использования температурного датчика. Для этого выясняем, какая прошивка в данный момент установлена на бортовом компьютере.

Чтобы понять это, следует выполнить следующее. Зажимаем клавишу, которая обнуляет суточный пробег. Поворачиваем ключ зажигания, но не заводим двигатель. После того, как стрелки поднялись и опустились ещё раз кратковременно нажимаем эту же кнопку и на дисплее отразится версия прошивки.

Если она не 090, значит установка температурного датчика не имеет смысла. Либо для осуществления задуманного придётся выполнить перепрошивку бортового компьютера.

euroelectrica.ru

Вводная информация

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


Один из них и наиболее популярный, что естественно, — Ардуино. Конструктор моментальной сборки электронных автоматических устройств любой степени сложности: высокой, средней и низкой. Эту платформу называют иначе «physical computing» за плотное взаимодействие с окружающей средой. Печатная плата с микропроцессором, открытый программный код, стандартные интерфейсы и подключение датчиков к Ардуино — слагаемые его популярности.

Система Ардуино — плата, которая объединяет все нужные компоненты, обеспечивающие полный цикл разработки. Сердце этой платы — микроконтроллер. Он обеспечивает управление всей периферией. Датчики, подключаемые к системе, позволяют системе «общаться» и взаимодействовать с окружением: анализировать, отмечать изменять.

Подключение цифрового датчика влажности, температуры

Подключение цифрового датчика влажности

Два популярных датчика — DHT11, DHT22 — предназначены для замера влажности и температуры (про подключение датчика температуру мы еще поговорим ниже отдельно); недорогое решение, отлично подходят для простых схем и обучения. Термистор, ёмкостной датчик — основа DHT11 и DHT22. Внутренний чип выполняет АЦП, давая на выходе «цифру», которую поймёт любой микроконтроллер.


DHT11 отличается от DHT22 диапазоном измерения и частотностью опроса: влажность — 20-80% для DHT11 и 0-100% для DHT22; температура — 0°C до +50°C для DHT11 и -40°C до +125°C для DHT22; опрос — ежесекундный для DHT11 и раз в две секунды для DHT22.

Подключение датчика температуры

Оба датчика DHT имеют стандартных 4 вывода:

  1. Питание датчиков.
  2. Шина данных.
  3. Не задействован.
  4. Земля.

Вывод данных и питания требует подключения между ними резистора 10 кОм.

Для DHT-датчиков разработана библиотека DHT.h (можно посмотреть по ссылке). При загрузке скетча в контроллер монитор порта должен отобразить текущие значения влажности, температуры. Проверить работоспособность просто — достаточно подышать на датчик и взять его в руки: температура и влажность должны поменяться.

Возможен вывод значений на экран LCD 1602 I2C, если включить его в систему.

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

Также некоторые акватеррариумы требуют особых условий влажности, которые легко контролировать при помощи DHT1 и DHT22.

Подключение датчика давления


Подключение датчика давления

Часто в деле предсказания погоды или определения высоты подъёма над уровнем моря требуется решить задачу измерения давления. Здесь на помощь приходят электронные барометры на технологии МЭМС: тензорометрический или пьезорезизстивный метод, связанный с переменностью сопротивления прибора при приложении деформирующих материал сил.

Наиболее популярен датчик BMP085; помимо барометрического давления он регистрирует и температуру. Ему на смену выпустили BMP180, он обладает теми же характеристиками:

  • Чувствительность в диапазоне: 300-1100 гПа (если в метрах — 9000 — 500 м над уровнем моря );
  • Разрешение : 0,03 гПа или 0,25 м;
  • Рабочая температура датчика -40 +85°C, точность измерения в указанном диапазоне — ±2°C;
  • Подключение по стандарту i2c;
  • V1 использует 3.3 В для питания и логики;
  • V2 использует 3.3-5 В для питания и логики.

Подключение датчика температуры

Подключение датчиков к Ардуино в этом случае стандартно:

Понадобится Unified Sensor Driver — его обновлённая версия обеспечивает более высокую точность показаний; кроме того, позволяет работать с несколькими разными подключёнными датчиками давления одновременно. Необходимо также установить Adafrut_Sensor library.

Подключение датчика движения

Подключение датчика движения

Без данного датчика не обходится ни одна серьёзная охранная система. Инфракрасный датчик — базовый элемент обнаружения присутствия теплокровных.

Также при помощи PIR-датчиков чрезвычайно удобно управлять освещением в зависимости от нахождения рядом человека. Инфракрасные или пироэлектрические датчики просты по внутреннему устройству и недороги. Они крайне надёжны и редко выходят из строя.

Пироэлектрик или диэлектрик


Основа датчика — пироэлектрик или диэлектрик, способный создавать поле при изменении температуры. Они устанавливаются попарно, а сверху закрываются куполом с сегментами в виде обычных линз или линзой Френеля. Это позволяет сфокусировать лучи от разных точек проникновения.

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

Подключение датчика температуры

HC-SR501 — наиболее распространённый и популярный датчик. Он имеет два подстроечных переменных резистора: один — для регулировки чувствительности и размера обнаруживаемого объекта, второй — для регулировки времени срабатывания (времени генерации импульса после обнаружения).

Схема подключения стандартна и не вызовет затруднений.

Подключение датчика температуры

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

Подключение датчика температуры

Его сильные стороны:


  • предварительная заводская калибровка;
  • погрешность менее 0,5°С;
  • программно задаваемая разрешающая способность в 0,0625°С при 12-и битном разрешении;
  • чрезвычайно большой диапазон измеряемых температур: от -55°С до +125°С;
  • в датчике имеется встроенный АЦП;
  • в одну линию связи могут быть включены несколько датчиков.

Корпус ТО-92 — самый распространённый для этих датчиков. Приняты две основные схемы подключения температурного датчика DS18B20 к микропроцессору или контроллеру:

Подключение датчика температуры

  1. Схема питания извне. Или при помощи внешнего источника.
  2. Схема так называемого «паразитного питания». Датчик подключается только двумя проводами. Это имеет значение при размещении датчика на больших расстояниях.

Подключение датчика температуры


При работе с температурой выше 100°С, схему с паразитным питанием использовать нельзя ввиду большой погрешности измерений.

Для работы с датчиком необходимо его проинициализировать. Далее следуют запись байта и чтение байта.

Эти три операции демонстрируют работу с датчиком и библиотека OneWire прекрасно их поддерживает. Устанавливаем библиотеку OneWire Library. После этого грузим скетч — и программная среда готова.

Возможно подключение нескольких датчиков DS18B20 — в этом случае их требуется подключать параллельно. Библиотека OneWire позволит считывать показания сразу со всех одновременно. При одновременном большом количеством подключений датчиков необходимо добавлять дополнительно резисторы на 100 или 120 Ом между ножкой data датчика DS18B20 и шиной data на Ардуино.

Выводы

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

  • освоить системы алгоритмизации начинающим инженерам;
  • освоить базовые навыки конструирования;
  • научиться программировать.

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


arduinoplus.ru

Основные характеристики датчика DS18B20 :

  1. Интерфейс 1-Wire Требуется только один контакт для связи
  2. Каждое устройство имеет уникальный 64-битный серийный адрес устройства который хранится в ROM
  3. Питание датчика в диапазоне температур  от 3 вольт до 5,5 вольт, возможно паразитное питание.
  4. Диапазон измеряемых температур от -55 ° C до +125 ° C  (-67 ° F до +257 ° F)
  5. Доступен в трех вариантах корпусов 8-Pin SO (150 mils), 8-Pin µSOP, и 3-Pin TO-92

DS18B20

Между ногой DQ (данные) и VDD (+5v) требуется подключить резистор номиналом 4,7 кОм. Питание подключается к ногам VDD (+5v) и GND(-),  DQ подключаем к цифровому пину 10 на Arduino.

ds18b20_shemaЕсли вам нужно подключить несколько датчиков, то используется вот такая схема


ds18b20_multi

Даже подключив 10 датчиков, на Arduino используется все равно 1 pin!!!

С подключением разобрались. Теперь разберемся с софтом.

Есть 2 варианта заставить работать ds18b20 с Arduino

1. Вариант.

Будем использовать только библиотеку OneWire, последнюю версию которой можно скачать здесь. Плюс такой реализации — вес скетча будет меньше, наглядно видно как и какой пин дергаем. Минусы- объем кода больше, сложнее в реализации.

Обратите внимание на строку

Здесь мы указываем пин к которому подключен датчик (в примере это цифровой  пин 10)

it-chainik.ru

Описание датчиков температуры

Температурные датчики предназначены для измерения температуры объекта или вещества с помощью свойств и характеристик измеряемой среды. Все датчики работают по-разному. По принципу измерения эти устройства можно разделить на несколько групп:

  • Термопары;
  • Термисторы;
  • Пьезоэлектрические датчики;
  • Полупроводниковые датчики;
  • Цифровые датчики;
  • Аналоговые датчики.

По области применения можно выделить датчики температуры воздуха, жидкости и другие. Они могут быть как наружные, так и внутренние.

Любой температурный датчик можно описать набором характеристик и параметров, которые позволяют сравнивать их между собой и выбирать подходящий под конкретную задачу вариант. Основными характеристиками являются:

  • Функция преобразования, т.е. зависимость выходной величины от измеряемого значения. Для датчиков температуры этот параметр измеряется в Ом/С или мВ/К.
  • Диапазон измеряемых температур.
  • Метрологические параметры – к ним относятся различные виды погрешностей.
  • Срок службы.
  • Время отклика.
  • Надежность – рассматриваются механическая устойчивость и метрологическая стойкость.
  • Эксплуатационные параметры – габариты, масса, потребляемая мощность, стойкость к агрессивному воздействию среды, стойкость к перегрузкам и другие.
  • Линейность выходных значений.

Датчики температуры по типу

  1. Термопары. Принцип действия термопар основывается на термоэлектрическом эффекте. Представляет собой замкнутый контур из двух проводников или полупроводников. В контуре возникает электрический ток, когда на месте спаев появляется разность температур. Чтобы измерить температуру, один конец термопары помещается в среду для измерения, а второй требуется для снятия значений. На спаях возникают термоЭДС E(t2) и E(t1), которые и определяются температурами t2 и t Результирующая термоЭДС в контуре будет равна разности термоЭДС на концах спаев E(t2)- E(t1). Термопары чаще всего выполняются из платины, хромеля, алюмеля и платинородия. Наибольшее распространение в России получили пары металлов ХА(хромель-алюмель), ТКХ(хромель – копель) и ТПП (платинородий-платина). Большим недостатком таких приборов является большая погрешность измерений. Из преимуществ можно выделить возможность измерения высоких температур – до 1300С.
  2. Терморезистивные датчики. Изготавливаются из материалов, обладающих высоким коэффициентом температурного сопротивления (ТКС). Принцип работы заключается в изменении сопротивления проводника в зависимости от его температуры. Такие приборы обладают высокой точностью, чувствительностью и линейностью измеренных значений. Основными характеристиками устройства являются номинальное электрическое сопротивление при температуре 25 С и ТКС. Терморезистивные датчики различаются по температурному коэффициенту сопротивления – бывают термисторы с отрицательным (NTC) и положительным (PTC, позисторы) ТКС. Для первых с ростом температуры уменьшается сопротивление, для позисторов – увеличивается. Терморезистивные датчики чаще всего применяются в электронике и машиностроении.
  3. Пьезоэлектрический датчик. Такое устройство работает на пьезоэффекте. Под воздействием электрического тока происходит изменение линейных размеров -прямой пьезоэффект. Когда подается разнофазный ток с определенной частотой, происходит колебание пьезорезонатора. Частота определяется температурой.  Зная полученную зависимость, можно определить необходимые данные о частоте и температуре. Диапазон измерения температуры широк, устройство обладает высокой точностью. Датчики чаще всего используются в научных опытах, которые требуют высокой надежности результатов.
  4. Полупроводниковый датчик. Измеряют в диапазоне от -55С до 150С. Принцип работы основан на зависимости изменения напряжения на p-n-переходе от температуры. Так как эта зависимость практически линейна, есть возможность создать датчик без сложной схемы. Но для таких приборов схема содержит одиночный p-n-переход, поэтому датчик отличается большим разбросом параметров и невысокой точностью. Исправить эти недостатки получилось в аналоговых полупроводниковых датчиках.
  5. Аналоговый датчик. Приборы стоят дешево и обладают высокой точностью измерения, что позволяет их применять в микроэлектронике. В схеме содержатся 2 чувствительных элемента (транзистора), обладающих различными характеристиками. Выходной сигнал – это разность между падениями напряжений на транзисторах. При помощи калибровки датчика внешними цепями можно увеличить точность измерения, которая находится в диапазоне от +-1С до +-3С. Датчики обладают тремя выходами, один из них используется для калибровки.
  6. Цифровой датчик. В отличие от аналогового датчика цифровой содержит дополнительные элементы – встроенный АЦП и формирователь сигнала. Подключаются по интерфейсам SPI, I2C, 1-Wire, что позволяет подключать сразу несколько датчиков к одной шине. Подобные устройства стоят немного дороже аналоговых, но при этом они значительно упрощают схемотехнику устройства.
  7. Существуют и другие датчики температуры. Например, для автоматических систем могут применяться сигнализаторы, также существуют пирометры, измеряющие энергию тела, которую оно излучает в окружающую среду. В медицине нередко используются акустические датчики — их принцип работы заключается в разности скорости звука при различных температурах. Эти датчики удобно применять в закрытых полостях и в недоступных средах. Похожие датчики – шумовые, они работают на зависимости шумовой разности потенциалов на резисторе от температуры.

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

Датчики температуры для работы с Ардуино

При работе с микроконтроллером Ардуино наиболее часто используются следующие датчики температуры: DS18B20, DHT11, DHT22, LM35, TMP36.

Датчик температуры DS18B20

Arduino DS18B20DS18B20 – цифровой 12-разрядный температурный датчик. Устройство доступно в 3 вариантах корпусов — 8-Pin SO (150 mils), 8-Pin µSOP, и 3-Pin TO-92, чаще всего используется именно последний. Он же изготавливается во влагозащитном корпусе с тремя выходами. Датчик прост и удобен в использовании, к плате Ардуино можно подключать сразу несколько таких приборов. А так как каждое устройство обладает своим уникальным серийным номером, они не перепутаются в результате измерения. Важной особенностью датчика является возможность сохранять данные при выключении прибора. Также DS18B20 может работать в режиме паразитного питания, то есть без внешнего питания через подтягивающий резистор. Подробная статья о ds18b20.

Датчики температуры DHT

Датчики температуры Arduino DHT11 и DHT22 – две версии датчика DHT, обладающие одинаковой распиновкой. Разливаются по своим характеристикам. Для DHT11 характерно определение температуры в диапазоне от 0С до 50С, определение влажности в диапазоне 20-80% и частота измерений 1 раз в секунду. Датчик DHT22 обладает лучшими характеристиками, он определяет влажность 0-100%, температурный диапазон увеличен – от -40С до 125С, частота опроса 1 раз за 2 секунды. Соответственно, стоимость второго датчика дороже. Оба устройства состоят из 2 основных частей – это термистор и датчик влажности. Приборы имеют 4 выхода – питание, вывод сигнала, земля и один из каналов не используется. Датчик DHT11 обычно используется в учебных целях, так как он показывает невысокую точность измерений, но при этом он очень прост в использовании. Другие технические характеристики устройства: напряжение питания от 3В до 5В, наибольший ток 2,5мА. Для подключения к ардуино между выводами питания и выводами данных нужно установить резистор. Можно купить готовый модуль DHT11 или 22 с установленными резисторами.

Датчик температуры LM35

Arduino lm35LM35 – интегральный температурный датчик. Обладает большим диапазоном температур (от -55С до 150С), высокой точностью (+-0,25С) и калиброванным выходом. Выводов всего 3 – земля, питание и выходной мигнал. Датчик стоит дешево, его удобно подключать к цепи, так как он откалиброван уже на этапе изготовления, обладает низким сопротивлением и линейной зависимостью выходного напряжения. Важным преимуществом датчика является его калибровка по шкале Цельсия. Особенности датчика: низкая стоимость, гарантированная точность 0,5С, широкий диапазон напряжений (от 4 до 30В) ток менее 60мА, малый уровень собственного разогрева (до 0,1С), выходное сопротивление 0,1 Ом при токе 1мА. Из недостатков можно выделить ухудшение параметров при удалении на значительное расстояние. В этом случае источниками помех могут стать радиопередатчики, реле, переключатели и другие устройства. Также существует проблема, когда температура измеряемой поверхности и температура окружающей среды сильно различаются. В этом случае датчик показывает среднее значение между двумя температурами. Чтобы избавиться от этой проблемы, можно покрыть поверхность, к которой подключается термодатчик, компаундом.

Схема подключения к микроконтроллеру Ардуино достаточно проста. Желательно датчик прижимать к контролируемой поверхности, чтобы увеличить точность измерения.

Примеры применения:

  • Использование в схемах с развязкой по емкостной нагрузке.
  • В схемах с RC цепочкой.
  • Использование в качестве удаленного датчика температуры.
  • Термометр со шкалой по Цельсию.
  • Термометр со шкалой по Фаренгейту.
  • Измеритель температуры с преобразованием напряжение-частота.
  • Создание термостата.

TMP36 – аналоговый термодатчик

tmp36 arduinoДатчик температуры Использует технологии твердотельной электроники для определения температуры. Устройства обладают высокой точностью, малым износом, не требуют дополнительной калибровки, просты в использовании и стоят недорого. Измеряет температуру в диапазоне от -40С до 150С. Параметры схожи с датчиком LM35, но TMP36 имеет больший диапазон чувствительности и не выдает отрицательное значение напряжения, если температура ниже нуля. Напряжение питания от 2,7В до 5,5В. Ток – 0.05мА. При использовании нескольких датчиков может возникнуть проблема, при которой полученные данные будут противоречивы. Причиной этого являются помехи от других термодатчиков. Чтобы исправить эту неполадку нужно увеличить задержку между записью измерений. Низкое выходное сопротивление и линейность результатов позволяют подключать датчик напрямую к схеме контроля температуры. TMP36 также, как и LM34 обладает малым нагревом прибора в нормальных условиях.

arduinomaster.ru

Подключение датчика DS18B20 к микроконтроллеру

Типовая схема подключения датчиков DS18B20 к микроконтроллеру:
Подключение датчика DS18B20 к микроконтроллеру
Как видно из схемы, датчик DS18B20 (или датчики) подключаются к микроконтроллеру, если они имеют общее питание, тремя проводниками:
— вывод №1 — общий провод (масса, земля)
— вывод №2 — он же DQ, по которому происходит общение между МК и DS18B20, подключается к любому выводу любого порта МК. Вывод DQ обязательно должен быть «подтянут» через резистор к плюсу питания
— вывод №3 — питание датчика — +5 вольт
Если в устройстве используется несколько датчиков температуры, то их можно подключить к разным выводам порта МК, но тогда увеличится объем программы. Датчики лучше подключать как показано на схеме — параллельно, к одному выводу порта МК.
Напомню о величине подтягивающего резистора:
«Сопротивление резистора надо выбирать из компромисса между сопротивлением используемого кабеля и внешними помехами. Сопротивление резистора может быть от 5,1 до 1 кОм. Для кабелей с высоким сопротивлением жил надо использовать более высокое сопротивление. А там где присутствуют промышленные помехи – выбирать более низкое сопротивление и использовать кабель с более большим сечением провода. Для телефонной лапши (4 жилы) для 100 метров необходим резистор 3,3 кОм. Если вы применяете «витую пару» даже 2 категории длина может быть увеличена да 300 метров»


Программирование работы микроконтроллера с датчиком DS18B20

Как происходит общение датчика DS18B20 с микроконтроллером мы рассмотрим используя даташит датчика и программу Algorithm Builder.

Последовательность операций общения
ОЧЕНЬ ВАЖНО следовать установленной последовательности (которая состоит из трех пунктов) каждый раз при обращении к DS18B20:
1. Инициализация
2. Команда ROM
3. Функциональная команда DS18B20
Только две команды выполняется в два шага: Поиск ROM и Поиск Аварии.


Инициализация DS18B20

Последовательность выполнения инициализации состоит из двух частей:
— импульс сброса — который формирует микроконтроллер
— импульс присутствия — который формирует DS18B20
Исходное состояние шины DQ, по которой происходит общение МК и датчика, — логическая 1, так как шина DQ «подтянута» через резистор к питанию.
По состоянию шины DQ можно определить подключен ли датчик к микроконтроллеру:
— если на шине логическая 1 — значит датчик подключен
— если не логическая 1 — значит датчик не подключен (или забыли подключить, или обрыв линии DQ)
Поэтому, последовательность выполнения инициализации можно дополнить еще одним пунктом — проверка подключения датчика. Но учтите, что эту проверку можно провести только при одном датчике.

Проверяем подключение датчика DS18B20:

Проверка подключения датчика DS18B20

Где:
— INI_DS18B20 — подпрограмма инициализации
— DQ_Pin — имя, которое я присвоил, разряду порта к которому подключен датчик (если смотреть по схеме, то это вывод PB0 порта В)
— DQ_Pin=1 — проверка подключения датчика — если на выводе DQ_Pin логическая единица то переходим по стрелке, если нет, то:
— 1—> Term_Error, где Term_Error — переменная в которую записывается код ошибки, в данном случае «1»
— Show_Term_Error — переход к подпрограмме вывода ошибки на дисплей
К примеру, при использовании трехразрядного семисегментного дисплея, можно вывести такую строчку:
— Er1, что означает — возникла ошибка, код ошибки-1 (датчик не подключен)

Теперь заглянем в даташит датчика и посмотрим временной график процедуры инициализации:
Временной график инициализации DS18B20
Переводим график в слова:
1. Исходный уровень шины DQ — логическая единица (за счет подтягивающего резистора)
2. Микроконтроллер формирует импульс сброса:
— МК переводит шину DQ в состоянии логического нуля на время не менее 480 микросекунд
— МК отпускает шину (переводим вывод в режим приема), при этом шина DQ опять переходит в состоянии логической единицы
3. DS18B20 обнаружив перепад уровня на шине (с логического нуля на логическую единицу) через 15-60 микросекунд передает импульс присутствия — переводит шину DQ в состояние логического нуля на длительность 60-240 микросекунд
4. По завершению импульса присутствия DS18B20 возвращает шину DQ в уровень логической единицы (судя по графику — через 480 микросекунд, от окончания импульса сброса, шина должна стопроцентно вернуться в уровень логической единицы)

Теперь переведем это все на язык программы. Но при этом следует учесть, что в процессе инициализации могут возникнуть еще две ошибки:
— DS18B20 не выдал импульс присутствия
— после импульса присутствия от DS18B20 шина DQ не вернулась в состоянии логической единицы

Подпрограмма инициализации DS18B20
На графике указаны минимальные временные характеристики, поэтому в программе они несколько завышены или взяты максимальные (из минимальных) значения:
— импульс сброса от МК — не 480 а 500 микросекунд
— пауза от окончания импульса сброса до импульса присутствия — 60 микросекунд
— возврат шины в состояние логической единицы после импульса присутствия через 420 микросекунд
Я надеюсь с первым вопросом — ИНИЦИАЛИЗАЦИЯ, мы разобрались
Переходим к следующему шагу обязательной последовательности — «Команда ROM»


Команда ROM

Следующим шагом нашего общения с DS18B20 мы должны подать ему нужную команду ROM
Напоминаю, что команд ROM всего пять:
1. Поиск ROM — может применяется (а может и не применяться, я, к примеру, ее в большинстве случаев не использую) в случае применения нескольких датчиков или других устройств общающихся с МК по шине 1-Wire
2. Чтение ROM — применяется при одном подключенном датчике для считывания его 64-битного кода
3. Соответствие ROM — применяется в случае если датчиков более одного для обращения к конкретному датчику
4. Пропуск ROM — команда используется для обращения сразу ко всем датчикам (устройствам) подключенным к МК. Практически применяется для подачи функциональной команды на конвертирование температуры (определение температуры) всеми подключенными датчиками одновременно
5. Поиск тревоги — если мы задали DS18B20 верхний и нижний предел температуры, которые нам нужно контролировать. В этом случае нам ответят только те датчики измеренная температура которыми соответствует заданным пределам

Каждая команда ROM имеет шестнадцатиразрядный код (также как и функциональные команды), поэтому для удобства в программе очень можно определить константы, которые имеют понятные названия команд, к примеру:
Команды DS18B20
В этой таблице заданы константы нужных мне для работы с датчиками команд.
После первого шага — ИНИЦИАЛИЗАЦИЯ, и передачи датчику DS18B20 команды ROM, датчик готов выполнить функциональную команду.
В предыдущей статье я подробно рассказал и о командах ROM, и о функциональных командах, повторяться не буду (я про функциональные команды).

Два примера алгоритма работы с DS18B20:
1. При использовании одного датчика:
— выполняем инициализацию
— подаем датчику команду ROM — «Пропуск ROM»
— подаем датчику функциональную команду — «Конвертировать температуру» (измерить температуру)
В процессе конвертирования контролируем работу датчика — если на шине ноль, то конвертирование не закончилось, если на шине логическая единица — конвертирование закончено.
Теперь можно считать температуру с датчика:
— выполняем инициализацию
— подаем датчику команду ROM — «Пропуск ROM»
— подаем датчику функциональную команду — «Чтение памяти»
По команде «чтение памяти» датчик начинает передачу данных из своей памяти — все девять байт. Но нам нужны только первые два байта — в них записана текущая измеренная датчиком температура. Поэтому считываем только два первых байта и выходим из подпрограммы.


Предыдущие статьи:

1. Устройство цифрового термометра DS18B20
2. Система команд датчика DS18B20
3. Подключение DS18B20 к микроконтроллеру

Следующая статья:

1. Микроконтроллер AVR и датчик DS18B20: программирование работы


Подключение датчика температурыПодключение датчика температурыПодключение датчика температурыПодключение датчика температурыПодключение датчика температуры (16 голосов, оценка: 4,88 из 5)
Подключение датчика температуры Загрузка…

microkontroller.ru


Categories: Тёплый пол

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.