Arduino(9) I2C ADT7410を使った温度測定

   ブログランキング・にほんブログ村へ

高精度温度センサーADT7410を使って温度を測定してみました。I2C(アイスクエアーシー)接続の16bit温度センサモジュールです。

Arduinoとの接続

スケッチ

#include <Wire.h>
  
int ADT7410_ADDR = 0x48;
  
void setup(void) {
    Serial.begin(9600);  
    Wire.begin();
}

void loop(void) {
    uint16_t uiVal;                       //2バイト(16ビット)の領域
    float fVal;
    int iVal;                             //符号ありの整数の値を保持
  
    Wire.requestFrom(ADT7410_ADDR, 2);    //2バイト要求
   
    uiVal = (uint16_t)Wire.read() << 8;   // 1バイト読み出しで上位にシフト
    uiVal |= Wire.read();                 // 1バイト読み出して下位にセット
     
    uiVal >>= 3;                          // シフトで13bit化
     
    
    if(uiVal & 0x1000) {                  // 13ビットで符号判定
        iVal = uiVal - 0x2000;            // マイナスの時 (10進数で8192)
    }
    else{
        iVal = uiVal;                     //プラスの時
    }
  
    fVal = (float)iVal / 16.0;            // 温度換算(摂氏)
    Serial.println(fVal, 4);
  
    delay(2000);
}

シリアルモニタ

ブログランキング・にほんブログ村へ

コメントを残す

メールアドレスが公開されることはありません。