Hello world code for PCT2075 and LM75B component class library. The PCT2075 is a temperature-to-digital converter featuring +/-1 degree-C accuracy over -25 degree-C to +100 degree-C range. It uses an on-chip band gap temperature sensor and Sigma-Delta A-to-D conversion technique with an overtemperature detection output that is a drop-in replacement for other LM75 series thermal sensors.

Dependencies:   PCT2075 mbed

PCT2075/PCT2075.h

Committer:
okano
Date:
2015-02-27
Revision:
1:5398b0799e20
Parent:
0:3c3d4c5ac8e9

File content as of revision 1:5398b0799e20:

/** PCT2075 and LM75B component class library
 *  PCT2075 と LM75B 用のコンポーネント・クラス・ライブラリです
 *
 *  This is new NXP PCT2075 and classic LM75B component class library
 *  This works for both PCT2075 and LM75B
 *
 *  @author  Tedd OKANO
 *  @version 1.0
 *  @date    28-Feb-2015
 *
 *  For the details of PCT2075 and LM75B..
 *  PCT2075 and LM75Bの詳細は..
 *      http://i2c_sda.nxp.com/documents/data_sheet/PCT2075.pdf
 *      http://i2c_sda.nxp.com/documents/data_sheet/LM75B.pdf
 */

#ifndef MBED_PCT2075_H
#define MBED_PCT2075_H

#include    "mbed.h"
#include    "I2CTempSensor.h"

/** PCT2075 class library クラスライブラリ
 *
 *  クラスライブラリは非常にシンプルなインターフェースを提供します
 *
 *  コード例:
 *  @code
 *  #include "mbed.h"
 *  #include "I2CTempSensor.h"
 *
 *  I2CTempSensor  temp0( p28, p27 );
 *
 *  I2C         i2c( p28, p27 );
 *  I2CTempSensor  temp1( i2c );
 *
 *
 *  int main()
 *  {
 *      float   t0;
 *      float   t1;
 *
 *      i2c.frequency( 400 * 1000 );
 *
 *      while(1) {
 *          t0   = temp0;
 *          t1   = temp1;
 *          printf( "temp = %7.3f, %7.3f\r\n", t0, t1 );
 *          wait( 1 );
 *      }
 *  }
 *  @endcode
 */
class PCT2075 : I2CTempSensor
{
public:
    /** I2Cピンとスレーブアドレスを指定し,インスタンスを作成します
     *
     * @param i2c_sda       I2C-bus i2c_sdaピン
     * @param i2c_scl       I2C-bus i2c_sclピン
     * @param i2c_address   (オプション) I2C-bus スレーブアドレス (デフォルト: 0x90)
     */
    PCT2075( PinName i2c_sda, PinName i2c_scl, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS );

    /** I2Cオブジェクトとスレーブアドレスを指定し,インスタンスを作成します
     *
     * @param i2c_obj I2C オブジェクト (インスタンス)
     * @param i2c_address (オプション) I2C-bus スレーブアドレス (デフォルト: 0x90)
     */
    PCT2075( I2C &i2c_obj, char i2c_address = DEFAULT_I2C_SLAVE_ADDRESS );

    /** デストラクタ
     */
    virtual ~PCT2075();

    /** 温度の読み出し
     *
     *  @return 摂氏温度を返します(float型)
     */
    virtual float   read( void );

    /** 温度の読み出し
     *
     *  @return オブジェクトが読みだした値を返すようにしています
     */
    virtual operator float( void );

private:
    /** デフォルト・スレーブアドレス */
    enum {
        DEFAULT_I2C_SLAVE_ADDRESS   = 0x90
    };
};

#endif  //  MBED_PCT2075_H