Информация & документация

DS1820 - датчик температуры
...
Сейчас выпускается более совершенный аналог: DS18S20. Старый вариант снят с производства. Новый датчик имеет укороченный корпус и расширенный диапазон температур (???). Общение с датчиком ведется по однопроводному интерфейсу. В микросхему встроен контроллер сети MicroLAN.

Пример чтения температуры с датчика в сети MicroLAN:
Если на линии всего одно устройство, можно упростить:
Карта блокнотной памяти DS1820:

Блокнотная память

Номер байта

ТЕМПЕРАТУРА младший байт 0
ТЕМПЕРАТУРА старший байт 1
TH/пользовательский байт 1 2
TL/пользовательский байт 2 3
ЗАРЕЗЕРВИРОВАН 4
ЗАРЕЗЕРВИРОВАН 5
COUNT REMAIN 6
COUNT PER °C 7
CRC 8

После получения датчиком команды "Преобразование температуры" происходит измерение температуры путем отсчета количества циклов прохода генератора с малым температурным коэффициентом за время работы генератора с большим температурным коэффициентом (очень запутанно и несовсем точно). Результат сохраняется в блокнотной памяти, которую мы считываем после измерения.

Единица в 16-битном числе "ТЕМПЕРАТУРА" соответствует 0.5 градуса. То есть значение 25 будет соответствовать 12.5 °C. Чтобы получить реальную температуру, необходимо это число умножить на 5. Тогда младшая цифра в десятичной системе будет отображать десятые доли температуры. В этом случае 25*5=125, младшая цифра - десятые, следовательно температура будет 12.5 °C. Для вычисления температуры без десятых долей необходимо разделить число на 2. Тогда 25/2=12 °C. Во всех этих случаях разрешение останется прежним - 0.5 градуса.

Чтобы добиться разрешения (но не точности!) 0.1, необходимо произвести вычисления используя регистры "COUNT REMAIN" и "COUNT PER °C". Вот формула:



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

Процедуры чтения температуры с датчиков DS1820 в разделе Исходники. ------------------------








Hosted by uCoz