Как изменить пределы температуры TH и TL в DS18b20

lin
Offline
Зарегистрирован: 11.06.2015

Добрый день.

Подскажите, пожалуйста, как записать значение пределов температуры TH и TL в датчик ds18b20.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
 // sets the high alarm temperature for a device
  // accepts a char.  valid range is -55C - 125C
  void setHighAlarmTemp(uint8_t*, const char);

  // sets the low alarm temperature for a device
  // accepts a char.  valid range is -55C - 125C
  void setLowAlarmTemp(uint8_t*, const char);

  // returns a signed char with the current high alarm temperature for a device
  // in the range -55C - 125C
  char getHighAlarmTemp(uint8_t*);

  // returns a signed char with the current low alarm temperature for a device
  // in the range -55C - 125C
  char getLowAlarmTemp(uint8_t*);
  

 

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

Вроде бы только ПРОГРАММАТОРОМ.

 

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

oleg_kazakof пишет:

Вроде бы только ПРОГРАММАТОРОМ.

Какой программатор? Почитайте доки на датчик: http://lib.chipdip.ru/179/DOC000179787.pdf в них все описано, как менять.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

Данная штука судя по даташиту может работать в режиме термостата, и имеет два специалных регистра

куда заносится значения верхней и нижней температуры, и в этом случае на выходе дата будет 1.

 

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

Не совсем. Можно просто поискать датчики, у которых температура ушла за заданные пределы. А общаться эти датчики по протоколу 1-wire. У них не может быть ничего на выходе, пока из об этом не спросили.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015
Описание работы термореле
В термореле датчиком температуры служит интегральная микросхема DS1820. Выход термодатчика DS1820 допускает втекающий ток до 4 мА, поскольку выход является ключом с открытым стоком. В связи с этим конструкция термореле получается предельно простой.
 
Специфика данного датчика в том, что измерение температуры производится в цифровом виде.  Датчик DS1820 способен измерять температуру от -55 до 125 гр. Так же  датчик способен работать в режиме термостата. У него имеются два цифровых регистра, в которые заносятся значения верхнего порога температуры (TH) и нижнего (TL). В режиме термостатирование,  контроль за температурой происходит непрерывно. Датчик с частотой в 1 секунду производит сравнение фактической температуры с пороговыми значениями прописанные в регистры TL и TH.
В данной схеме, если текущее значение температуры превысит TH, то на выходе датчика DS1820  будет лог.1 что приведет к отключению нагрузки от сети. Если же температура опустится ниже TL то на выходе DS1820 появится лог. 0 и нагрузка будет включена.
Примечание. Если применить данную схему электронного термореле для управления работой компрессора холодильника, то выходной сигнал нужно будет инвертировать.
Питание DS1820 осуществляется от простого бестрансформаторного блока  питания через гасящий резистор Rl. Сигнал с выхода управляет оптосимистором через цепь R2, VT1, R3. В свою очередь оптосимистор VD1, управляет симистором VS1. Данный мощный симистор, для эффективной работы, необходимо разместить на радиаторе площадью не менее 40 кв. см.
Для устранения радиопомех, возникающих при включении симистора, в схему включены R5, С1 выполняющие роль фильтра НЧ. Свечение зеленого светодиода говорит о включении термореле к сети, а свечение красного светодиода свидетельствует о включении нагревателя.
Для записи температурных порогов в память датчика  необходимо использовать простой программатор. В роли температурного датчика так же возможно применить схожие по параметрам DS1821, DS18S20. В термореле применены конденсаторы К10-17 (СЗ), К52-1 (С4), К73-17В (Cl, С2).
Датчик DS1820 размещен внутри корпуса прибора, в связи с этим термореле обладает довольно большой инерционностью. В случае если такая инертность прибора не устраивает, тогда датчик DS1820 необходимо вынести наружу. Испытания термореле в балконном овощехранилище, которое длилось более двух лет, подтвердили его надежную работу. В роли нагревателя применялась электролампа накаливания в 250 Вт.


Главная » Измерение и контроль » Программатор для DS1821
Программатор для DS1821
Для осуществления программирования термометра термостата DS1821, а именно изменение состояния регистров и переключения ее из состояния термостата в состояние термометра и обратно, существует особая программа ds1821.exe работающая  под Windows. Программатор для DS1821 осуществляет связь датчика температуры с COM портом компьютера.
Принципиальная схема программатора
Приведенный в данной статье программатор DS1821 позволяет подключить к COM-порту микросхемы DS1821 и DS18S20. С помощью специализированных программ ds1821.exe и ds1820.exe можно задать пороги  TH и TL термостата, прочитать и вывести показания термометра, а также определить серийный номер и записать в память два пользовательских байта.
 
Описание программы  DS1821.exe
Ниже приведен вид  главного окна данной программы
 
• Два окошка для указания значения TH: одно позволяет вписать значение температуры в градусах Цельсия, а второе в шестнадцатеричной системе.
• Так же два идентичных окошка для указания значения TL.
• Кнопка 1-Wire обеспечивает переход DS1821 в однопроводной режим из состояния термостата.
• Кнопка Thermostat обеспечивает запись указанных значений порогов и переключение DS1821 в состояние термостата.
• Для активации режима измерения температуры предназначена кнопка Start. Что бы воспользоваться данный режим, необходимо перевести DS1821 в однопроводный режим. Преобразования происходят периодически, а замеренная величина отображается в поле температуры.
• Выход из программы осуществляется кнопкой Exit.
• Кроме этого, окно вверху содержит меню из трех пунктов: Port, Utilites и Help.
• Пункт Port разрешает выбрать один из четырех COM портов. Необходимо обратить внимание, что в списке будет активны только имеющиеся  COM-порта и, причем не занятые в данный момент. При инициализации порта, программа проверяет наличие подключенного программатора DS1821. В случае отсутствия оного, программа выдает ошибку «Device is not found on COM2»
• Пункт меню Recall NVM  разрешает прочесть из DS1821 записанные в нем значения TH и TL. Это возможно только когда термостатный датчик находится однопроводном режиме.
Для записи или изменения значений порогов DS1821, находящегося уже в состоянии термостата, необходимо всего лишь записать в соответствующие поля новые величины и нажать кнопку Thermostat. После нажатия на кнопку, датчик на период записи будет переведен  в однопроводной режим передачи данных, после чего происходит запись введенных значений. После записи необходимо обесточить датчик, и после включения он будет функционировать как термостат уже с новыми порогами TH и TL.
Данная программа не имеет прямое программирование бита полярности выхода POL. Управление производится значениями TH и TL. Полярность выхода датчика можно менять следующим образом:
• если необходимо чтобы при превышении температуры определенного порога на выходе появлялся высокий уровень сигнала, то наибольшее значение порога следует записать в TH, а меньшее в TL.
• если нужно чтобы при понижении температуры ниже определенного порога на выходе появлялся высокий уровень сигнала, то наибольшее значение порога следует записать в TL, а меньшее в TH.
Помимо термометра термостата DS1821 имеются микросхемы термометров, самой известной из которых на сегодняшний день является DS18S20, заменившая старую DS1820. Она обладает меньшей дискретностью отображения температуры 0,5°C, и помимо этого, располагает множеством дополнительных функций. Тем не менее, датчик температуры  DS1820 не может работать самостоятельно в режиме термостата.
 Скачать программы DS1821.exe и DS1820.exe (скачено: 268)
Рубрика: Измерение и контроль 
Метки: DS1821, Программатор 

 

bwn
Offline
Зарегистрирован: 25.08.2014

Даташит на великом и могучем. Стр.5 и далее. Никакой программатор не нужен. Протокол и есть программатор.

oleg_kazakof, то описание, которое вы привели, относится к какому то законченному девайсу. Сам датчик так делать не умеет.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

Спасибо даташит на русском хорошее дело. A насчёт DS: видимо DS18B20 и DS1820 не совсем одно и тоже,

т.к. последний вроде спомощью программратора можно перевисти в автономный режим работы, и на выходе data

будет лог.1 в диапазоне температур заданных регистрами.

 

bwn
Offline
Зарегистрирован: 25.08.2014

Помимо термометра термостата DS1821 имеются микросхемы термометров, самой известной из которых на сегодняшний день является DS18S20, заменившая старую DS1820. Она обладает меньшей дискретностью отображения температуры 0,5°C, и помимо этого, располагает множеством дополнительных функций. Тем не менее, датчик температуры  DS1820 не может работать самостоятельно в режиме термостата.

Термостатом работает только DS1821 (нужен программатор), все клоны 1820 могут это делать в составе микроконтролерной системы.

 

lin
Offline
Зарегистрирован: 11.06.2015

Всем благодарочка. Решил проблему :)

Самое главное это последовательность операции:

1шаг - инициализация (return())

2шаг - ROM команды (выбор датчика(ов))

3шаг - функциональные команды (запись данных)

Очень удобные блок-схемы в ДАТАШИТ на стр.12,13.

Также нужно записывать данные в энергонезависимую память.

   ds.reset();            
  ds.write(0xCC);      // Выбираем адрес
  ds.write(0x4E);       // Запись 3-х байт
  ds.write(0x1);         // Запись 1-го байта Hight Alarm
  ds.write(0x0);         // Запись 2-го байта Low Alarm
  ds.write(0x1F);      // Запись 3-го байта Config

  ds.reset();
  ds.write(0xCC);
  ds.write(0x48);    // Запись с SRAM в EEPROM
 

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Молодец что решил... но что это дает? То что он может быть прочитан без подготовки.

lin
Offline
Зарегистрирован: 11.06.2015

Puhlyaviy пишет:
Молодец что решил... но что это дает? То что он может быть прочитан без подготовки.

Я разобрался с задачей. Проблема решена. Что еще нужно?

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

bwn пишет:

Помимо термометра термостата DS1821 имеются микросхемы термометров, самой известной из которых на сегодняшний день является DS18S20, заменившая старую DS1820. Она обладает меньшей дискретностью отображения температуры 0,5°C, и помимо этого, располагает множеством дополнительных функций. Тем не менее, датчик температуры  DS1820 не может работать самостоятельно в режиме термостата.

Термостатом работает только DS1821 (нужен программатор), все клоны 1820 могут это делать в составе микроконтролерной системы.

C 1821  я еще такое когда то давно делал, схема подключалась на компорт, и через компорт нужной программой программировались пороги.  А вот 1820 вроде как и не умеет такого.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Блин... кошмар... Термостат это устройство которое "знает" что такое гистерезис и пользующее его в нормальном режиме. DS18xx могут только поднять флаг пересечения температурой установленного предела. До термостата как до луны.

SLKH
Offline
Зарегистрирован: 17.08.2015

DESCRIPTION The DS1821 can function as a standalone thermostat with user-programmable trip-points or as 8-bit temperature sensor with a 1-wire digital interface. The thermostat trip-points are stored in nonvolatile memory, so DS1821 units can be programmed prior to system insertion for true standalone operation. The DS1821 has an operating temperature range of –55°C to +125°C and is accurate to ±1°C over a range of 0°C to +85°C. Communication with the DS1821 is accomplished through the open-drain DQ pin; this pin also serves as the thermostat outpu

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

На заборе тоже написано, а за забором дрова. Про гистерезис не понятно ?

И еще....Я могу ошибаться, но для понимания находится ли температура в заданных пределах нужно запросить состояние датчика. При этом ты не будешь знать что тебе нужно делать греть или охлаждать. Поэтому в разы проще считать показания и плясать уже от них. Все эти дополнительные функции просто фишки, применение которых скорее всего ничего не даст. Могу допустить в случае огромных массивов таких датчиков это еще может иметь смысл. 

Читать нужно смысл, а не буквы.

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

brokly пишет:

Блин... кошмар... Термостат это устройство которое "знает" что такое гистерезис и пользующее его в нормальном режиме. DS18xx могут только поднять флаг пересечения температурой установленного предела. До термостата как до луны.

1821 именно как термостат у меня и работали. термостат без микропроцессора. 1821-транзистор-реле..

включалось например при +5 и выключалось при +7 - работало на нагрев в погребе, чтобы не замерзло там.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Без процессора !? Реле прямо было к датчику подключено ? :)) Давайте уже без фантазий :)))) Наверняка или опрос датчика был редкий, или иные методы применялись для того что бы реле не дребезжало на границах диапазона. Не нужно сказок. Дадашит прочтите, там как раз черным по белому написано как пользоваться этой TL и TH, получили сигнал о выходе из диапазона, прочитали температуру, проанализировали, а уже потом среагировали.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, мож у него не флапало на границе, вот все и работало. Какой-нить естественный гистерезис вследствии инерционности среды вполне мог нивелировать все проблемы.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

sadman41 пишет:

Ну, мож у него не флапало на границе, вот все и работало. Какой-нить естественный гистерезис вследствии инерционности среды вполне мог нивелировать все проблемы.

Я даже знаю какой там естественный гистерезис - разрядность Th и Tl меньше показаний. Но это не делает датчик термостатом :) 

Short Circuit пишет:

1821 именно как термостат у меня и работали. термостат без микропроцессора. 1821-транзистор-реле..

включалось например при +5 и выключалось при +7 - работало на нагрев в погребе, чтобы не замерзло там.

А уж реле к нему точно без процессора не подключить.

И вот все это делает бессмысленным использование этих самых TH и TL, поскольку проще быстрее и точнее прочитать температуру. Эти флаги имею смысл при большом массиве датчиков в групповых операциях.

Green
Offline
Зарегистрирован: 01.10.2015

brokly пишет:
А уж реле к нему точно без процессора не подключить.


Чего гадать, если можно почитать). http://www.gaw.ru/html.cgi/txt/publ/_rtcs/73_ds1821.htm

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Green пишет:

brokly пишет:
А уж реле к нему точно без процессора не подключить.


Чего гадать, если можно почитать). http://www.gaw.ru/html.cgi/txt/publ/_rtcs/73_ds1821.htm

Тьфу ты... Тема то про 18b20. Читаю как хочу :((( Естестченно, все о чем я тут трындел про DS18B20 и DS1820. ТС же про них спрашивал и спор про них был. Плавно так, незаметно, поменялся на 1821. 

lin пишет:

Добрый день.

Подскажите, пожалуйста, как записать значение пределов температуры TH и TL в датчик ds18b20.

Ниправ я. Но 1820 нихрена не термостат.

SLKH
Offline
Зарегистрирован: 17.08.2015

brokly пишет:

sadman41 пишет:

Ну, мож у него не флапало на границе, вот все и работало. Какой-нить естественный гистерезис вследствии инерционности среды вполне мог нивелировать все проблемы.

Я даже знаю какой там естественный гистерезис - разрядность Th и Tl меньше показаний. Но это не делает датчик термостатом :) 

Short Circuit пишет:

1821 именно как термостат у меня и работали. термостат без микропроцессора. 1821-транзистор-реле..

включалось например при +5 и выключалось при +7 - работало на нагрев в погребе, чтобы не замерзло там.

А уж реле к нему точно без процессора не подключить.

И вот все это делает бессмысленным использование этих самых TH и TL, поскольку проще быстрее и точнее прочитать температуру. Эти флаги имею смысл при большом массиве датчиков в групповых операциях.

Реле (и даже MOC30xx) к 1821 не подключить без транзистора, ибо там выход всего 4 ма. Процессоры в режиме "термостат" не нужны.

bwn
Offline
Зарегистрирован: 25.08.2014

Пацаны, это, а чего Вас на некрофилию потянуло? Аж к покоренью Крыма?))))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

У меня был насморк, я запах трупичины не учуял :(