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

Views: 10484


Библиотека для работы с датчиками температуры 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. Указать, к какому порту подключена шина данных датчика, для этого необходимо сконфигурировать строки

#define     TRISDAL        TRISA1      // регистр управления порта ДАЛЛАСА
#define     DALLAS         PORTAbits.RA1    // шина связи с ДАЛЛАСОМ

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

 #define _XTAL_FREQ 40000000 // Наша тактовая 40 Mh

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

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

if(CONV==1)
{
    if(convert - - == 0)
    {
        convert=57;   // формирование интервала конвертирования
        CONV=0;       //57 - надо изменить
    }
}

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.

Значок

Библиотека - DS18B20 удаленный контроль температуры v1.02. 8.44 KB 1387 downloads

Библиотека - DS18B20 удаленный контроль температуры...
Версия v1.03.
Значок

Библиотека - DS18B20 удаленный контроль температуры v1.03 8.98 KB 1839 downloads

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

Библиотека для работы с датчиками температуры DS18B20. V1.04 9.30 KB 3075 downloads

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


Видео


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

Email: catcatcat.electronics@gmail.com


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


  • Гаджеты для домашней автоматики – Датчик движенияГаджеты для домашней автоматики – Датчик движения
    Views: 1510 Управление светодиодным освещением – Датчик движения. Данный гаджет предназначен для управления освещением рабочих столов (кухонных столов), освещение прихожих, освещение зеркал в прихожих, автоматическое включение света в коридорах. Датчик позволяет …
  • Простой цифровой регулятор мощностиПростой цифровой регулятор мощности
    Views: 7811 Простой регулятор мощности с цифровой индикацией. Этот проект создан как обучающий, для ознакомления с основами построения сетевых регуляторов мощности. Устройства подобного типа можно использовать для управления освещением, скоростью …
  • ch-4000 – универсальная печатная платаch-4000 – универсальная печатная плата
    Views: 1150 На смену устаревшей плате ch-3000, пришла новая ch-4000. Плату уже можно приобрести в магазине Ворон. Схема. Плата позволяет создавать таймеры, часы реального времени, регуляторы температуры, регуляторы влажности, вольтметры, …
  • Development board based on MCU PIC18F47Q84Development board based on MCU PIC18F47Q84
    Views: 2790 PIC18F47Q84 Microcontroller Family with CAN Flexible Data Status: In Production.
  • Простой сенсорный регулятор светаПростой сенсорный регулятор света
    Views: 2518 Простой сенсорный регулятор. Проект – 2007 года. Регулятор выполнена на микроконтроллере PIC12F683 и имеет минимальное количество элементов. Выполняет стандартные функции, включение выключение света, изменение яркости, запоминание последнего установленного уровня …
  • Стробоскоп для автомобиляСтробоскоп для автомобиля
    Views: 2254 Одним из популярных решений светового тюнинга автомобиля, мотоцикла или скутера стал эффект –  “полицейский стробоскоп“. На база платы ch-c0050 реализовано несколько проектов. В этой статье приводятся две версии …
  • Real-time music visualization technologyReal-time music visualization technology
    Views: 354 Music visualization technology in real time (RTMV-technology). Я не музикант і я не маю спеціальної музичної освіти, я інженер розробник вбудованих систем. Але моє хобі розроблення технології візуалізації …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Views: 1190 Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети …
  • Altium Designer my Libraries, Project templates, System settings by Catcatcat. V26.0Altium Designer my Libraries, Project templates, System settings by Catcatcat. V26.0
    Views: 284 Altium Designer my Libraries, Project templates, System settings by Catcatcat. V26.0   Here I want to share how I configure Altium Designer and how I use the DXPPreferences1.DXPPrf …
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовMCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов
    Views: 830 При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном …



 

Поделись этим!