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

Dependents:   Mbed2_ConnectTestAll Demo_ADT7410

Committer:
MikamiUitOpen
Date:
Mon Jun 15 09:18:19 2015 +0000
Revision:
2:c134a43c7875
Parent:
1:ad3046485a3e
Child:
3:e0717c58a396
3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:b6dc7c54b451 1 //--------------------------------------------------------------
MikamiUitOpen 0:b6dc7c54b451 2 // Class for using ADT7410 (Header)
MikamiUitOpen 2:c134a43c7875 3 // Default: 13-bit resolution
MikamiUitOpen 1:ad3046485a3e 4 // 2015/06/15, Copyright (c) 2015 MIKAMI, Naoki
MikamiUitOpen 0:b6dc7c54b451 5 //--------------------------------------------------------------
MikamiUitOpen 0:b6dc7c54b451 6
MikamiUitOpen 0:b6dc7c54b451 7 #ifndef ADT7410_HPP
MikamiUitOpen 0:b6dc7c54b451 8 #define ADT7410_HPP
MikamiUitOpen 0:b6dc7c54b451 9
MikamiUitOpen 0:b6dc7c54b451 10 #include "mbed.h"
MikamiUitOpen 0:b6dc7c54b451 11
MikamiUitOpen 0:b6dc7c54b451 12 namespace Mikami
MikamiUitOpen 0:b6dc7c54b451 13 {
MikamiUitOpen 0:b6dc7c54b451 14 class ADT7410
MikamiUitOpen 0:b6dc7c54b451 15 {
MikamiUitOpen 0:b6dc7c54b451 16 public:
MikamiUitOpen 0:b6dc7c54b451 17 // Constructor
MikamiUitOpen 0:b6dc7c54b451 18 ADT7410(PinName sda = D14, // SDA
MikamiUitOpen 0:b6dc7c54b451 19 PinName scl = D15, // SCL
MikamiUitOpen 0:b6dc7c54b451 20 uint8_t addr = 0x90); // I2C bus address
MikamiUitOpen 0:b6dc7c54b451 21
MikamiUitOpen 0:b6dc7c54b451 22 // Set configuration register
MikamiUitOpen 0:b6dc7c54b451 23 void SetConfig(char val);
MikamiUitOpen 0:b6dc7c54b451 24
MikamiUitOpen 0:b6dc7c54b451 25 // Get value in configuration register
MikamiUitOpen 0:b6dc7c54b451 26 uint8_t GetConfig();
MikamiUitOpen 0:b6dc7c54b451 27
MikamiUitOpen 1:ad3046485a3e 28 // Read temperature
MikamiUitOpen 1:ad3046485a3e 29 float Read();
MikamiUitOpen 1:ad3046485a3e 30
MikamiUitOpen 1:ad3046485a3e 31 // Operator shorthand for Read()
MikamiUitOpen 1:ad3046485a3e 32 operator float() { return Read(); }
MikamiUitOpen 1:ad3046485a3e 33
MikamiUitOpen 1:ad3046485a3e 34 // Reset
MikamiUitOpen 1:ad3046485a3e 35 void Reset();
MikamiUitOpen 0:b6dc7c54b451 36
MikamiUitOpen 0:b6dc7c54b451 37 protected:
MikamiUitOpen 0:b6dc7c54b451 38 // Write single byte
MikamiUitOpen 0:b6dc7c54b451 39 // "STOP" を送らずにふたたび "START" を送る,つまりリスタート・コンディションに
MikamiUitOpen 0:b6dc7c54b451 40 // する場合は,"repeated" を "true" にする
MikamiUitOpen 0:b6dc7c54b451 41 void WriteSingleByte(char reg, bool repeated = false)
MikamiUitOpen 0:b6dc7c54b451 42 { i2c_.write(addr_, &reg, 1, repeated); };
MikamiUitOpen 0:b6dc7c54b451 43
MikamiUitOpen 0:b6dc7c54b451 44 private:
MikamiUitOpen 0:b6dc7c54b451 45 // Register addresses
MikamiUitOpen 0:b6dc7c54b451 46 static const uint8_t TEMPER_ = 0x00; // Temperature value MSByte
MikamiUitOpen 0:b6dc7c54b451 47 static const uint8_t CONFIG_ = 0x03; // Configuration
MikamiUitOpen 0:b6dc7c54b451 48 static const uint8_t RESET_ = 0x2F; // Software reset
MikamiUitOpen 0:b6dc7c54b451 49
MikamiUitOpen 0:b6dc7c54b451 50 const uint8_t addr_; // left-justified 7-bit slave address of ADT7410
MikamiUitOpen 0:b6dc7c54b451 51 I2C i2c_; // Object of I2C
MikamiUitOpen 0:b6dc7c54b451 52 };
MikamiUitOpen 0:b6dc7c54b451 53 }
MikamiUitOpen 2:c134a43c7875 54 #endif // ADT7410_HPP