Ds датчик температуры
Датчик температуры DS1621
Назначение выводов
- SDA - линия данных шины I2C
- SCL - линия тактового сигнала шины I2C
- Tout - выход термостата Vdd - плюсовой вывод питания Vss - минусовой вывод питания A0..A2 - линииформирования младших битов адреса
Принцип работы
Датчик температуры DS 1621 для измерения использует принцип нестабильности частоты колебаний при изменении температуры. Для этого в ее состав входят два генератора. Первый имеет высокую температурную стабильность. Его частота соответствует температуре –55 градусов и практически не подвержена изменениям. Частота работы второго генератора, наоборот, изменяется пропорционально температуре. Специальные счетчики импульсов производят подсчет за одинаковый временной интервал и на основе разности, вычисляют значение температуры. Это значение в 9-разрядном двоичном коде доступно пользователю Данные разбиваются на старший и младший байты. Если достаточно целое значение температуры, то можно пользоваться только старшим байтом. Младший байт имеет только один информационный бит LSB. обеспечивающий дискретность 0.5 градуса. Остальные биты младшего байта всегда равны 0.
Регистр состояния
Микросхема DS 1621 имеет несколько режимов работы. Настройка и отслеживание этих режимов производится с помощью регистра состояний. Имеются следующие доступные биты:
- DONE – флаг окончания преобразования.Устанавливается по завершении преобразования.
- THF – флаг «высокая температура». Устанавливается при превышении порога TH. Сбрасывается программно или отключением питания.
- TLF - флаг «низкая температура». Устанавливается при температуре меньшей, чем значение порога TL. Сбрасывается программно или отключением питания.
- NVB – флаг записи данных в энергонезависимую память. Установленный флаг свидетельствует о незавершенности записи. Время записи ячейки составляет ориентировочно 10 мс.
- POL – полярность выхода Tout. Высокое значение соответствует прямой полярности, низкое – обратной. Бит энергонезависим.
- ISHOT – управление циклом измерений. При высоком логическом уровне измерение выполняется однократно. Данный режим используется в энергосберегающих системах. Низкий логический уровень бита, разрешает выполнение преобразования в непрерывном режиме. Бит энергонезависим.
Работа с DS1621
Команды обмена
Обмен данными с DS 1621 производится по стандартному протоколу I 2 C. Микросхема участвует в нем в качестве slave -устройства. Slave -адрес DS 1621 имеет вид 1001ххх, где ххх – состояние линий А0-А2 микросхемы. Для работы с DS 1621 используются следующие команды:
- 22 h – «Останов преобразования» - команда производит завершение работы схемы преобразования температуры. Дополнительных данных для работы не требуется.
- AAh – «Чтение температуры» - Результатом работы команды являются два байта данных, содержащих значение измеренной температуры.
- A 1 h – «Установка TH » - команда установки верхнего порога срабатывания термостата. После данной команды требуется передача двух байтов значения порога.
- A 2 h - «Установка TL » - команда установки нижнего порога срабатывания термостата. После данной команды требуется передача двух байтов значения порога.
- A 8 h – «чтение температурного счетчика». Команда работает только на чтение и позволяет считать данные счетчика, частота работы которого зависит от температуры.
- A 9 h - «чтение стабильного счетчика». Команда работает только на чтение и позволяет считать данные счетчика, частота работы которого не зависит от температуры.
- A С h – «Регистр конфигурации». В зависимости от состояния бита R / W производится запись или чтение регистра конфигурации. Формат используемых данных – байт.
- EEh – «Старт счетчика» - команда начала измерения температуры. Дополнительных данных не требуется.
Повышение точности измерений
Датчик температуры DS1621 допускает повышение точности измерения. Для этого пользователю доступны значения счетчиков стабильного N [ A 9 h ] и температурнозависимого N [ A 8 h ] генератора. Зная измеренное значение температуры T [ AAh ]и значения счетчиков можно воспользоваться формулой:
T=T[AAh] – 0.25 + (N[A9h]-N[A8h])/N[A9h]
Также желательна калибровка датчика с определением необходимых поправок. Учет этих поправок должен производиться в контроллере.
Режим термостата
Микросхема DS 1621 может работать в режиме термостата. Для этого имеется выход Tout. устанавливаемый в зависимости от значения температуры. Пороги включения и выключения выхода задаются значениями в регистрах TH и TL. Полярность выхода устанавливается битом POL регистра конфигурации.
Терморегулятор для кровли DS-8 с датчиками влажности и температуры
Контроллер DS-8 специально спроектирован для регистрации снега и ледяного дождя.
Порог срабатывания по температуре может устанавливаться с помощью ручки "Temp" в пределах 1оС-7оС (34оF-44оF). Когда температура наружного воздуха ниже заданного порога, датчик осадков воспринимает осадки как снег или ледяной дождь и активирует систему обогрева, если выше, то как дождь и система обогрева не активируется.
Это нужно для того, чтобы просушить обогреваемую поверхность и уменьшить вероятность образования наледи после отключения нагрева. Таймер, формирующий эту задержку, переустанавливается каждый раз, если датчик осадков фиксирует их наличие.
Независимо от показаний датчиков силовое реле прибора замкнуто, если регулятор находится в этой зоне. Этот режим предназначен исключительно для проверок системы, поэтому никогда не оставляйте активированным "Ручное включение" в рабочем режиме.
расчет отбора по температуре куба
Ответ #40: 30 Июл 15, 20:59
#include <LiquidCrystal.h>;
#include <OneWire.h>; //для датчика температуры
#define ONE_WIRE_BUS 12; // номер пина на котором будет датчик температуры
OneWire oneWire(12); // включает интерфес на ножке
OneWire ds(12);
byte data[9]; //массив для чтения датчиков температуры
int temperatyra_kuba; //температура куба
int temperatyra_deflegmatora; //температура дефлегматора
int vremia_otbora = 1000; //время, когда клапан открыт, в милисекунадх
int pauza_otbora; //текущая пауза между включением клапана отбора
int pauza_otbora_set = 10000; //базовая значение паузы в милисекундах, которое дает приемлимое качество и скорость отбора. нужно подбирать экспериментально, 10 секунд
unsigned long time_on; // время включения клапана
//адреса датчиков температуры
byte Thermometer1[8] = <0x28, 0x45, 0x61, 0x68, 0x05, 0x00, 0x00, 0xE5>; //температура колонны
//переменные для вывода информации на экран
char lcd_text1[16]; //верхняя строчка экрана
char lcd_text2[16]; //нижняя строчка экрана
// привызывает к названиям кнопок цифры
const int BUTTON_NONE = 0;
const int BUTTON_RIGHT = 1;