Библиотека для работы с датчиками температуры DS18B20.

DS18B20


Введение

 Датчики температуры DS18B20 производитель MAXIM  зарекомендовали себя как надежные и недорогие устройства изменения температуры. Совместно с контроллерами фирмы Microchip позволяют создавать недорогие системы контроля и регулировки температуры. Конструкция порта ввода вывода микроконтроллера позволяет непосредственно подключать датчики с удалением до 300 метров, без каких либо драйверов. Возможность работы в сетевом режиме и свойство шины 1-Wire® позволяют использовать всего один вывод микроконтроллера.

Разработанная библиотека позволяет подключать одновременно до 16 датчиков температуры. Контролировать замыкание или обрыв шины, а также неисправность каждого датчика в отдельности.

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

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


Физическое подключение датчиков.

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

 img13

img14

Для дополнительной защиты, порта микроконтроллера, можно порекомендовать схему

img15

Датчики работают отлично с питающим напряжением от 3 до 5 вольт, поэтому нет ограничений для применения микроконтроллеров с питание в 3 вольта. У нас уже несколько лет работают проекты на 18 серии – PIC18F45K20 и 16 серии – PIC16LF1936.

Примечание. По сопротивлению R7. Если датчики удалены от контроллера на 2 метра :), то можно использовать 4,7 кОм как рекомендует описание. Для длинных линий 100-300 метров может потребоваться уменьшения до 910 ом. Многое зависит от типа кабеля. 


Назначение библиотеки.

Библиотека предназначена для подключения до 16 датчиков температуры DS18B20 по шине  1-Wire® к микроконтроллерам фирмы Microchip. Для подключения можно использовать любые микроконтроллеры, которые имеют встроенную память EEPROM, так как библиотека использует память EEPROM для хранения адресов датчиков температуры. Количество подключаемых датчиков может ограничено в настройках библиотеки.

Библиотека написана и протестирована C Compiler HI-TECH, версия MPLAB 8.80.

HI-TECH C Compiler for PIC18 MCUs (PRO Mode)  V9.80, HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode)  V9.83


Подключение библиотеки.

Для подключения библиотеки необходимо выполнить корректировку строк в файле ds18b20.h под ваше изделие:

1. Указать, к какому порту подключена шина данных датчика, для этого необходимо сконфигурировать строки

2. Правильно задать тактовую частоту микроконтроллера, для этого конфигурируют строку

3.Необходимо организовать прерывания и в цикл прерываний вставить отсчет времени конвертирования температуры датчиков. Формируется длительность 750 микросекунд. Инициализация переменной convert задает время конвертирования температуры.

Например, если использовать цикл прерывание с периодом 0,1 секунду (хотя может быть любой период, лишь бы можно было формировать длительность 750-800 мкСек в размер переменной типа char), тогда константа может быть в пределах 8-9.

4.Для автоматического поиска, подключения датчиков, замены неисправных датчиков на исправные, а также добавления новых датчиков используйте (можно в начале программы) функцию Test_DT();

5.Обратите внимание функция Test_DT() отключает фильтр помех. Для включения выполните после функции команду TESTDT=1;

6.Количество подключаемых датчиков максимально 16. Ограничение в строке

#define         COLDAT         4 // разрешенное количество датчиков в системе (значение 1 – 16)

 7.Для работы могут быть использованы только контроллеры, имеющие на борту EEPROM. Так как адреса датчиков хранятся в нем. Располагаются адреса от конца памяти. По умолчанию подразумевается, что объем памяти 256 байт.

8.Для постоянного измерения температуры необходимо в основной цикл вставить функцию Celsio(); Чтение температуры из массива TEMPDAT[]. Неисправность датчика можно контролировать по флагам ETхх, где хх-номер датчика 0-15.


Функции библиотеки

Level_High ()

Формирует высокий уровень на шине.

Level_Low ()

Формирует низкий уровень.

Waiting_WR ()

Формирует период ожидания для чтения или записи бита данных.

CRC_Bits (intdata)

Вычисление контрольной суммы для данных получаемых с DS18B20.

Reset_Dallas ()

Формирует импульс сброса на шине данных.

Dreceive ()

Читает байт данных от DS18B20.

Dsend ()

Записывает байт данных на (в) DS18B20.

Celsio ()

Делает все, что необходимо для измерения температуры. Возвращаемое значение показывает состояние шины 1-Wire®. А также контролирует исправность и устанавливает (сбрасывает) флаги неисправности датчиков температуры.

SeachROM ()

Функция поиска адресов датчиков температуры подключенных к шине.

SaveROM ()

Функция сохранения адресов датчиков температуры в EEPROM. Умная функция, именно она, добавляет датчики и производит замену адресов поврежденных датчиков на исправные датчики.

EraseROM ()

Очищает память EEPROM от адресов датчиков. Она необходима если надо «все начать сначала».

Test_DT ()

Эта функция объединяет в себе всю необходимую процедуру по начальному тестированию и контролю за датчиками температуры. Её обычно располагают в теле функции инициализация контроллера, при включении питания.


Тестовая программа.

Можно долго объяснять, что и как работает, но проще всего посмотреть, как работает реальное изделие.

Смотрите проект  – DS18B20 удаленный контроль температуры.


Версия v1.02.

Версия v1.03.
Исправлено описание в файле ds18b20.h работы библиотеки. В версии 1.02 иногда при первом чтении данных после конвертирования, возникала ошибка CRC. При включенном фильтре помех эта проблема решалась, но для качественной работы её надо было устранить. В v – 1.03 – исправлено.
Версия v1.04. для Microchip MPLAB XC8 C Compiler V1.12


Видео

 


Автор, Гена Чернов

Email: catcatcat.electronics@gmail.com


Это может быть интересно


  • Акриловый корпус для платы ch-4000Акриловый корпус для платы ch-4000
    Плата ch-4000 подходит для монтажа в корпуса на дин рейку, но для домашней автоматики необходимо что-то другое, поэтому был разработан корпус из акрила который позволит создавать настольные и настенные устройства. Корпус состоит из …
  • Оптосимистор и его применениеОптосимистор и его применение
    Эрве Кадино “Цветомузыкальные установки” Ответ на вопрос – управление мощным тиристором или симистором, от терморегулятора. Статья в pdf Оптосимистор принадлежат к классу оптронов и обеспечивают очень хорошую гальваническую развязку (порядка …
  • Четырех канальный терморегулятор ch-4000Четырех канальный терморегулятор ch-4000
     Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать как в …
  • OLED RET012864E/REX012864JOLED RET012864E/REX012864J
    RET012864E/REX012864J ОЛЕД индикатор производитель Raystar-Optronics приобретался в http://www.microchip.ua/ к сожалению никакой информации на сайте поставщика нет. Поэтому решил работу с этой версией индикатора на драйвере SSD1305 предоставить на своем сайте. Так как есть ошибки …
  • Гаджеты для домашней автоматики – Датчик приближенияГаджеты для домашней автоматики – Датчик приближения
    Управление светодиодным освещением – Датчик приближения. Данный гаджет предназначен для управления внутренним освещением мебели. Датчик позволяет определить закрытие или открытие дверцы или ящика и при этом включать или выключать освещение. …
  • MPLAB® Harmony – или как это просто! Часть 4.MPLAB® Harmony – или как это просто! Часть 4.
    Часть четвертая – это может показаться немного сложно. Структура проекта. Для облегчения конфигурирования проекты MPLAB Harmony обычно структурированы таким образом, чтобы изолировать код, необходимый для настройки «системы», от кода библиотеки …
  • Самый простой диммер для светодиодного освещенияСамый простой диммер для светодиодного освещения
    Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы приведем несколько …
  • Проект с использованием MCC часть 04Проект с использованием MCC часть 04
    Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое главное , …
  • LED модуль P10C4V12LED модуль P10C4V12
    LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость панелей легко …
  • Простой цифровой милливольтметр постоянного токаПростой цифровой милливольтметр постоянного тока
    Простой цифровой вольтметр постоянного тока. Три диапазона измерений с автоматическим переключением 1 – 0,001 – 0,999 V, 2 – 0,01-9,99 V, 3 – 0,1-99,9. Четыре управляемых выхода с возможностью задания функции контроля и времени реакции на …



 

Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com