I2C 接続の温度センサ ADT7410 用のライブラリ. Library for temperature sensor ADT7410 connected using I2C interface.
Dependents: Mbed2_ConnectTestAll Demo_ADT7410
ADT7410.hpp@2:c134a43c7875, 2015-06-15 (annotated)
- 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?
User | Revision | Line number | New 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_, ®, 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 |