安くて超高性能な温度センサーADT7420をArduino Nanoに接続してみた
中京大学の伊藤誠氏のHPを参考に接続してみた。
高精度の温度センサーを手に入れたので、wifiでデータを飛ばすことを将来的に考えながら作ってみた。
ADT7420のVDDに5V,GND に GNDを接続する。
温度センサーのSCLをA5、SDAをA4を接続する(Arduino UNOでも同じ)。
それぞれの間にkΩの抵抗を接続する。
これで接続を完了。
そして走らせたスケッチはこちら
友人に手伝っていただいて、先のウェブサイトのコードに手直しをして出力結果を見やすくしました
#include <I2C.h>
#define ADT 0x48
int i,ans;
long temp;
double celsius;
void setup()
{
I2c.begin();
Serial.begin(9600);
delay(10);
I2c.read(ADT,0x0B,1);
byte st=I2c.receive();
Serial.print("ID:(0xCB):");
Serial.println(st, HEX);
}
void loop()
{
int i;
byte xH,xL;
Serial.print("temp:");
I2c.read(ADT,0x0,2);
xH = I2c.receive();
xL = I2c.receive();
/*Serial.print(xH,HEX);
Serial.print(xL,HEX);
Serial.print(": ");*/
celsius = double(long(word(xH,xL)) * 100/128)/100.00;
Serial.print(celsius);
Serial.println("deg");
delay(500);
}
たとえば、これで出力された25.12degは、25.12度を意味します。#include <I2C.h>
#define ADT 0x48
int i,ans;
long temp;
double celsius;
void setup()
{
I2c.begin();
Serial.begin(9600);
delay(10);
I2c.read(ADT,0x0B,1);
byte st=I2c.receive();
Serial.print("ID:(0xCB):");
Serial.println(st, HEX);
}
void loop()
{
int i;
byte xH,xL;
Serial.print("temp:");
I2c.read(ADT,0x0,2);
xH = I2c.receive();
xL = I2c.receive();
/*Serial.print(xH,HEX);
Serial.print(xL,HEX);
Serial.print(": ");*/
celsius = double(long(word(xH,xL)) * 100/128)/100.00;
Serial.print(celsius);
Serial.println("deg");
delay(500);
}
このスケッチが誰かの役に立てたら光栄です。
今度はArduino3台以上で複数のI2C接続をしてみます
No Comment to " ADT7420の使い方とI2C接続方法 "