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

Dependents:   Mbed2_ConnectTestAll Demo_ADT7410

ADT7410.hpp

Committer:
MikamiUitOpen
Date:
2015-06-15
Revision:
1:ad3046485a3e
Parent:
0:b6dc7c54b451
Child:
2:c134a43c7875

File content as of revision 1:ad3046485a3e:

//--------------------------------------------------------------
//  Class for using ADT7410 (Header)
//  2015/06/15, Copyright (c) 2015 MIKAMI, Naoki
//--------------------------------------------------------------

#ifndef ADT7410_HPP
#define ADT7410_HPP

#include "mbed.h"

namespace Mikami
{
    class ADT7410
    {
    public:
        // Constructor
        ADT7410(PinName sda = D14,      // SDA
                PinName scl = D15,      // SCL
                uint8_t addr = 0x90);   // I2C bus address
                
        // Set configuration register
        void SetConfig(char val);
    
        // Get value in configuration register
        uint8_t GetConfig();

        // Read temperature
        float Read();
        
        // Operator shorthand for Read()
        operator float() { return Read(); }

        // Reset
        void Reset();

    protected:
        // Write single byte
        // "STOP" を送らずにふたたび "START" を送る,つまりリスタート・コンディションに
        // する場合は,"repeated" を "true" にする
        void WriteSingleByte(char reg, bool repeated = false)
        { i2c_.write(addr_, &reg, 1, repeated); };
    
    private:
        // Register addresses
        static const uint8_t TEMPER_ = 0x00;   // Temperature value MSByte
        static const uint8_t CONFIG_ = 0x03;   // Configuration
        static const uint8_t RESET_  = 0x2F;   // Software reset
        
        const uint8_t addr_;    // left-justified 7-bit slave address of ADT7410
        I2C i2c_;               // Object of I2C
    };
}
#endif  // ADT7410_HPP