#1 2015-06-11 09:54:05

lin
Учасник
Зареєстрований: 2015-06-11
Повідомлень: 2

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

Добрый день.

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

Неактивний

#2 2015-06-11 10:24:13

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

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

http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

Figure 7. DS18B20 Memory Map


/* modify scratchpad register to set temp sampling resolution */
  ds.reset();
  ds.select(addr);    
  ds.write(0x4E);          // write scratchpad (starts at byte 2)
  // note:  set high/low temp alarms by changing the next two values 
  ds.write(0x4B);    // default value of TH reg (user byte 1)
  ds.write(0x46);    // default value of TL reg (user byte 2)
  // uncomment one of the following
  //ds.write(0x7F);    // 12-bit sampling resolution (default)
  //ds.write(0x5F);    // 11-bit
  //ds.write(0x3F);    // 10-bit
  ds.write(0x1F);    // 9-bit

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);    // start conversion, with parasite power on at the end

  delay(1000);     // maybe 750ms is enough, maybe not
  // we might do a ds.depower() here, but the reset will take care of it.

источник
http://www.netfluvia.org/code/ds18B20_test.pde

работает, иль нет - неведомо

Неактивний

#3 2015-07-07 06:28:04

BlockThor
Учасник
З Одесса
Зареєстрований: 2014-12-03
Повідомлень: 11
Сайт

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

Если речь идет о Ардуино, то в библиотеке DallasTemperature есть пример: 'Alarm' и 'AlarmHandle' где описываются эти процедуры.

  // alarm when temp is higher than 30C
  sensors.setHighAlarmTemp(insideThermometer, 30);
  
  // alarm when temp is lower than -10C
  sensors.setLowAlarmTemp(insideThermometer, -10);

Неактивний

#4 2015-10-12 01:01:44

Алексей2015
Гість

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

BlockThor пише:

Если речь идет о Ардуино, то в библиотеке DallasTemperature есть пример: 'Alarm' и 'AlarmHandle' где описываются эти процедуры.

  // alarm when temp is higher than 30C
  sensors.setHighAlarmTemp(insideThermometer, 30);
  
  // alarm when temp is lower than -10C
  sensors.setLowAlarmTemp(insideThermometer, -10);

подскажите как задать значение не целое число, а например 31.4 при таком параметре значение округляется до 31.

#5 2015-10-12 18:06:04

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

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

наверное переделать библиотеку

Неактивний

#6 2015-11-16 10:51:02

Зинэтула
Гість

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

Алексей2015 пише:

подскажите как задать значение не целое число, а например 31.4 при таком параметре значение округляется до 31.

Никак. В датчик можно записать только целое число плюс знак.
Либо можно использовать 2 регистра - TH и TL для одного значения. Однако тогда нужно будет организовывать алгоритм сравнения в МК, иначе датчик не будет отзываться на команду Alarm. Вернее будет, но некорректно.

#7 2015-11-16 10:51:12

Зинэтула
Гість

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

Алексей2015 пише:

подскажите как задать значение не целое число, а например 31.4 при таком параметре значение округляется до 31.

Никак. В датчик можно записать только целое число плюс знак.
Либо можно использовать 2 регистра - TH и TL для одного значения. Однако тогда нужно будет организовывать алгоритм сравнения в МК, иначе датчик не будет отзываться на команду Alarm. Вернее будет, но некорректно.

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму