1

我对 DS1621 (arduino) 有疑问:

必须向引脚 3 (TOut) 发送哪些命令和参数才能显示 HIGH 时的温度高于 25 摄氏度?

我想使用 Wire 库。这是正确的还是我还需要什么?

 #define DEV_ID 0x90 >> 1 
 int tempC = 25;  //for 25 Celsius 

 void setup() {
  Serial.begin(9600);           
  Wire.begin();
  Wire.beginTransmission(DEV_ID);           // connect to DS1621 
  Wire.send(0xAC);                          
  Wire.send(0x02);                          
  Wire.beginTransmission(DEV_ID);           
  Wire.send(0xEE);                          
  Wire.endTransmission();
 }

 void loop() {
  tempC = Wire.receive();
  Serial.print(tempC);
 }
4

1 回答 1

0

Tout 是“恒温器输出。当温度超过 TH 时激活;当温度低于 TL 时将复位。”

所以你必须设置 TL 和 TH。必须发送控制字节,因为值是发送

[A1h] [TH 值] [A2h] [TL 值]

幸运的是,25 度是他们给出的 0x19 或 00011001 的值,所以我的代码看起来像这样

 Wire.begin();
 Wire.beginTransmission(DEV_ID);           //I am talking to you
 Wire.send(0xA1);                          //I want to change TH
 Wire.send(0x19);                          //Value of 25
 Wire.endTransmission();

 Wire.beginTransmission(DEV_ID);           //I am talking to you
 wire.send(0xA2);                          //I want to change TL
 Wire.send(0x19);                          //value of 25                      
 Wire.endTransmission();

您已经添加/保留了其余的代码,但看看这是否能解决问题。

这是数据表http://pdfserv.maximintegrated.com/en/ds/DS1621.pdf

于 2013-06-04T12:26:31.153 回答