TI LM73 2.7~5.5V, SOT, 11~14ビット デジタル温度センサーです。
精度は 2.7V-4.5Vでは
-10°C to 80°C: ±1.0°C (max)
-25°C to 115°C: ±1.5°C (max)
-40°C to 150°C: ±2.0°C (max)
4.5V ~ 5.5Vでは、各々0.5℃追加となっています。
LM73には LM73-0, LM73-1 という2つのバージョンがあり、
I2Cアドレスが異なっており、組み合わせで最大6個接続可能です。
Galileo では次のページのものを少し書き換えたコードで温度を取得できます。
http://fromgoldenwells.blog.so-net.ne.jp/2008-12-30
#include <Wire.h>
int I2CAdrs = 0x4c; // スレーブアドレス
int ret;
void setup() {
Serial.begin(9600);
Wire.begin();
Wire.beginTransmission(I2CAdrs);
Wire.write((byte)0x04);
Wire.write(0x60); // 14bit
ret = Wire.endTransmission();
Wire.beginTransmission(I2CAdrs);
Wire.write(0x00);
ret = Wire.endTransmission();
delay(100);
}
void loop() {
int data=0;
Wire.beginTransmission(I2CAdrs);
ret = Wire.requestFrom(I2CAdrs, 2);
data = 0;
if (Wire.available()) {
data = Wire.read();
} else {
Serial.println("Wire not available.");
}
if (Wire.available()) {
data = (data << 8 )| Wire.read() ;
}
ret=Wire.endTransmission();
printdata(data);
delay(2000);
}
void printdata(int data) {
int data2;
int data3;
float data_f;
boolean negative=false;
if (data < 0 ) { // マイナスならbooleanにtrueをセットしプラスに変換
negative=true;
data = -data;
}
data2 = data >> 7; // 小数値切り捨て
data_f = (float)(data >> 2 ) / 32;
data_f = data_f - data2 ;
data3 = data_f * 100 ;
Serial.print ("Current temperature is ");
if (negative) {
Serial.print("-");
}
Serial.print(data2);
Serial.print(".");
Serial.print(data3/10);
Serial.print(data3 % 10);
Serial.println(" C. ");
}
-
購入金額
0円
-
購入日
2014年04月09日
-
購入場所
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。