我对DS1621(arduino)有疑问:
必须将哪些命令和参数发送到引脚3(TOut),以便在HIGH时显示温度高于25摄氏度?
我想使用Wire lib。 这是正确的还是我还需要什么?
#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);
}
答案 0 :(得分:0)
Tout是“恒温器输出。当温度超过TH时有效;将在何时复位 温度低于TL。“
所以你必须设置TL和TH。必须发送控制字节,因为值为send
[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();
你已经添加/保留了其余的代码,但看看是否可以解决问题。