2013-06-04 52 views
1

我有一個關於DS1621(Arduino的)問題:Arduino的I2C命令DS1621

什麼命令和參數必須發送到引腳3(吹捧),因此,這表明溫度超過25攝氏度時的更大的高?

我想使用Wire lib。 這是對的還是我還需要什麼? 「當溫度超過TH溫控器輸出激活。;當 溫度低於TL將復位。」

#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

TOUT是

所以你必須設置TL和TH。必須爲值發送的控制字節[爲TH值] [爲TL值]發送

[如A1h] [A2H]

幸運的是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

+0

感謝您的幫助喬恩b :-) – user2398664