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

Dependents:   Mbed2_ConnectTestAll Demo_ADT7410

Committer:
MikamiUitOpen
Date:
Fri Sep 01 11:14:31 2017 +0000
Revision:
4:3769397d3803
Parent:
3:e0717c58a396
Child:
5:bbcd91ba7c6b
5

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 4:3769397d3803 4 // 2017/09/01, Copyright (c) 2017 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 3:e0717c58a396 18 #if defined(STM32F4) || defined(STM32L0) || defined(__STM32F3xx_H)
MikamiUitOpen 0:b6dc7c54b451 19 ADT7410(PinName sda = D14, // SDA
MikamiUitOpen 0:b6dc7c54b451 20 PinName scl = D15, // SCL
MikamiUitOpen 0:b6dc7c54b451 21 uint8_t addr = 0x90); // I2C bus address
MikamiUitOpen 3:e0717c58a396 22 // Default constructor is defined for only Nucleo
MikamiUitOpen 3:e0717c58a396 23 #else
MikamiUitOpen 3:e0717c58a396 24 ADT7410(PinName sda, // SDA
MikamiUitOpen 3:e0717c58a396 25 PinName scl, // SCL
MikamiUitOpen 3:e0717c58a396 26 uint8_t addr = 0x90); // I2C bus address
MikamiUitOpen 3:e0717c58a396 27 #endif
MikamiUitOpen 0:b6dc7c54b451 28 // Set configuration register
MikamiUitOpen 0:b6dc7c54b451 29 void SetConfig(char val);
MikamiUitOpen 0:b6dc7c54b451 30
MikamiUitOpen 0:b6dc7c54b451 31 // Get value in configuration register
MikamiUitOpen 0:b6dc7c54b451 32 uint8_t GetConfig();
MikamiUitOpen 0:b6dc7c54b451 33
MikamiUitOpen 1:ad3046485a3e 34 // Read temperature
MikamiUitOpen 1:ad3046485a3e 35 float Read();
MikamiUitOpen 1:ad3046485a3e 36
MikamiUitOpen 1:ad3046485a3e 37 // Operator shorthand for Read()
MikamiUitOpen 1:ad3046485a3e 38 operator float() { return Read(); }
MikamiUitOpen 1:ad3046485a3e 39
MikamiUitOpen 1:ad3046485a3e 40 // Reset
MikamiUitOpen 1:ad3046485a3e 41 void Reset();
MikamiUitOpen 0:b6dc7c54b451 42
MikamiUitOpen 0:b6dc7c54b451 43 protected:
MikamiUitOpen 0:b6dc7c54b451 44 // Write single byte
MikamiUitOpen 0:b6dc7c54b451 45 // "STOP" を送らずにふたたび "START" を送る,つまりリスタート・コンディションに
MikamiUitOpen 0:b6dc7c54b451 46 // する場合は,"repeated" を "true" にする
MikamiUitOpen 0:b6dc7c54b451 47 void WriteSingleByte(char reg, bool repeated = false)
MikamiUitOpen 4:3769397d3803 48 { i2c_.write(ADDR_, &reg, 1, repeated); }
MikamiUitOpen 0:b6dc7c54b451 49
MikamiUitOpen 0:b6dc7c54b451 50 private:
MikamiUitOpen 0:b6dc7c54b451 51 // Register addresses
MikamiUitOpen 0:b6dc7c54b451 52 static const uint8_t TEMPER_ = 0x00; // Temperature value MSByte
MikamiUitOpen 0:b6dc7c54b451 53 static const uint8_t CONFIG_ = 0x03; // Configuration
MikamiUitOpen 0:b6dc7c54b451 54 static const uint8_t RESET_ = 0x2F; // Software reset
MikamiUitOpen 0:b6dc7c54b451 55
MikamiUitOpen 4:3769397d3803 56 const uint8_t ADDR_; // left-justified 7-bit slave address of ADT7410
MikamiUitOpen 0:b6dc7c54b451 57 I2C i2c_; // Object of I2C
MikamiUitOpen 0:b6dc7c54b451 58 };
MikamiUitOpen 0:b6dc7c54b451 59 }
MikamiUitOpen 2:c134a43c7875 60 #endif // ADT7410_HPP