I2C 接続の温度センサ ADT7410 用のライブラリ. Library for temperature sensor ADT7410 connected using I2C interface.

Dependents:   Mbed2_ConnectTestAll Demo_ADT7410

Revision:
0:b6dc7c54b451
Child:
1:ad3046485a3e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ADT7410.cpp	Mon Jun 15 05:43:19 2015 +0000
@@ -0,0 +1,60 @@
+//--------------------------------------------------------------
+//  Class for using ADT7410
+//  2015/06/10, Copyright (c) 2015 MIKAMI, Naoki
+//--------------------------------------------------------------
+
+#include "ADT7410.hpp"
+
+namespace Mikami
+{
+    // Constructor
+    ADT7410::ADT7410(PinName sda, PinName scl, uint8_t addr)
+        : addr_(addr), i2c_(sda, scl)
+    {
+        Reset();
+    }
+
+    // Set configuration register
+    // See Figure 15 in data sheet of ADT7410
+    void ADT7410::SetConfig(char val)
+    {
+        char wReg[2] = { CONFIG_, val };
+        i2c_.write(addr_, wReg, 2);  
+    }
+
+    // Get value in configuration register
+    // See Figure 17 in data sheet of ADT7410
+    uint8_t ADT7410::GetConfig()
+    {
+        WriteSingleByte(CONFIG_, true);
+    
+        char rReg[1];
+        i2c_.read(addr_, rReg, 1);
+    
+        return rReg[0];
+    }
+    
+    // Get temperature
+    // See Figure 18 in data sheet of ADT7410
+    float ADT7410::Get()
+    {
+        WriteSingleByte(TEMPER_, true);
+    
+        char rReg[2];
+        i2c_.read(addr_, rReg, 2);
+
+        int16_t value = rReg[0] << 8 | rReg[1];
+
+        return value/128.0f;
+    }
+
+    // Reset
+    // See p.19 in data sheet Rev.A of ADT7410
+    void ADT7410::Reset()
+    {
+        WriteSingleByte(RESET_);
+        wait_ms(250);
+    }
+}
+
+