Views: 10444
Введение
Датчики температуры DS18B20 производитель MAXIM зарекомендовали себя как надежные и недорогие устройства изменения температуры. Совместно с контроллерами фирмы Microchip позволяют создавать недорогие системы контроля и регулировки температуры. Конструкция порта ввода вывода микроконтроллера позволяет непосредственно подключать датчики с удалением до 300 метров, без каких либо драйверов. Возможность работы в сетевом режиме и свойство шины 1-Wire® позволяют использовать всего один вывод микроконтроллера.
Разработанная библиотека позволяет подключать одновременно до 16 датчиков температуры. Контролировать замыкание или обрыв шины, а также неисправность каждого датчика в отдельности.
Функции библиотеки полностью берут на себя нагрузку по подключению, добавлению и замене повреждённых датчиков температуры.
Для работы с датчиками температуры DS18B20, можно для тактирования контроллера, использовать внушений тактовый генератор.
Физическое подключение датчиков.
Первое, что необходимо для надёжной работы, это защита датчика и порта контролера от статического электричества которое может воздействовать на длинные линии связи с датчиком. Для этого можно рекомендовать два типа схем подключения.
Для дополнительной защиты, порта микроконтроллера, можно порекомендовать схему
Датчики работают отлично с питающим напряжением от 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 1366 downloads
Библиотека - DS18B20 удаленный контроль температуры...Библиотека - DS18B20 удаленный контроль температуры v1.03 8.98 KB 1825 downloads
Библиотека - DS18B20 удаленный контроль температуры...Версия v1.04. для Microchip MPLAB XC8 C Compiler V1.12
Библиотека для работы с датчиками температуры DS18B20. V1.04 9.30 KB 3048 downloads
Библиотека для работы с датчиками температуры...Видео
Автор, Гена Чернов
Email: catcatcat.electronics@gmail.com
Это может быть интересно
- REFERENCE CLOCK OUTPUT MODULEViews: 506 REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от …
- Проект с использованием MCC часть 02Views: 2295 Когда мы запустили конфигуратор, самое главное понять, что с этим делать и как проверить, то что мы делаем работает или нет. Для начала настроим регистры конфигурации микроконтроллера и настроем …
- TDA7294 part 2Views: 466 Це друга частина проекту TDA7294, початок дивись тут. Тут ви знайдете повністю проект високоякісного підсилювача на TDA7294, схема, 3D моделі, гербер файли для виготовлення друкованої плати. І звичайно …
- PIC32MZ – прерывания (заметки)Views: 455 Виды формирования запоминая контекста при входе в прерывания. Компилятор представляет три варианта AUTO – когда запоминания места возврата из подпрограммы возложено на программу, т.е все создается программно. Этот …
- MPLAB® Harmony – или как это просто! Часть 3.Views: 2091 Часть третья – копнём немного глубже. Вы наверное заметили, что во второй главе, вроде сначала все шло как по маслу, а потом, что бы заморгали светики, я вставил …
- Четырех канальный терморегулятор ch-4000Views: 3198 Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать …
- DS18B20 – удаленный контроль температурыViews: 3042 Контроль температуры с использованием датчиков температуры DS18B20 и платы ILLISSI-4B-09-primum Проект позволяет подключать к плате ILLISSI-4B-09-primum до 16 датчиков температуры DS18B20, удаленных более 300 метров, и выводить информацию …
- Стабилизатор тока на SN3350, часть 2Views: 1162 Если вам необходимо разработать устройство с применением мощных светодиодов, то никак не обойтись без применения стабилизатора тока. На настоящий момент стабилизаторы тока являются самым эффективным механизмом, для питания светодиода в течение всего …
- CLUBBEST-50-LightViews: 277 CLUBBEST-50-LIGHT Зміст Короткий опис проекту. 1 Опис схемотехніки візуалізатора музики. 2 Аудіо вхід. 3 MCU. 4 Цифровий вихід. 5 Схема живлення MCU. 6 Складання пристрою. 7 Список …
- Проект с использованием MCC часть 10Views: 840 Алгоритм управления освещением от нажатия кнопки. Обработка удержания кнопки: Мы должны проверить кнопка в настоящий момент нажата и флаг удержания установлен, если да Проверить таймер удержания “отработал” – …