Lib to read the MCP9808 over Initialized I2C bus

Committer:
mederic
Date:
Tue Apr 12 09:02:48 2016 +0000
Revision:
0:46326feade89
1st realease

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mederic 0:46326feade89 1 #ifndef MPC9808_H
mederic 0:46326feade89 2 #define MPC9808_H
mederic 0:46326feade89 3
mederic 0:46326feade89 4 #include "mbed.h"
mederic 0:46326feade89 5
mederic 0:46326feade89 6 /** MCP9808 class.
mederic 0:46326feade89 7 * Used for read MCP9808 ±0.5°C Maximum Accuracy Digital Temperature Sensor
mederic 0:46326feade89 8 *
mederic 0:46326feade89 9 * Example:
mederic 0:46326feade89 10 * @code
mederic 0:46326feade89 11 *#include "mbed.h"
mederic 0:46326feade89 12 *#include "MCP9808.h"
mederic 0:46326feade89 13 *
mederic 0:46326feade89 14 *DigitalOut myled(LED1);
mederic 0:46326feade89 15 *I2C i2cBus(D14,D15);
mederic 0:46326feade89 16 *MCP9808 therm(&i2cBus, true, true, true);
mederic 0:46326feade89 17 *
mederic 0:46326feade89 18 *int main()
mederic 0:46326feade89 19 *{
mederic 0:46326feade89 20 * while(1)
mederic 0:46326feade89 21 * {
mederic 0:46326feade89 22 * myled = !myled; // Toggle LED
mederic 0:46326feade89 23 * wait(0.2); // 200 ms
mederic 0:46326feade89 24 * printf("Temperature=%03.6f*C\r\n",therm.getTemp());
mederic 0:46326feade89 25 * }
mederic 0:46326feade89 26 *}
mederic 0:46326feade89 27 * @endcode
mederic 0:46326feade89 28 */
mederic 0:46326feade89 29 class MCP9808
mederic 0:46326feade89 30 {
mederic 0:46326feade89 31 public:
mederic 0:46326feade89 32 /** Create MCP9808 instance connected to I2C bus
mederic 0:46326feade89 33 * @param *i2c I2C bus already initialized
mederic 0:46326feade89 34 * @param a0 bool indicate a0 pin state to compute I2C address
mederic 0:46326feade89 35 * @param a1 bool indicate a1 pin state to compute I2C address
mederic 0:46326feade89 36 * @param a2 bool indicate a2 pin state to compute I2C address
mederic 0:46326feade89 37 */
mederic 0:46326feade89 38 MCP9808(I2C *i2c, bool a0=false, bool a1=false, bool a2=false);
mederic 0:46326feade89 39
mederic 0:46326feade89 40 /**Get MCP9808 abient temperature
mederic 0:46326feade89 41 * @returns temperature [°C]
mederic 0:46326feade89 42 */
mederic 0:46326feade89 43 float getTemp(void);
mederic 0:46326feade89 44
mederic 0:46326feade89 45 #ifdef MBED_OPERATORS
mederic 0:46326feade89 46 /** An operator shorthand for getTemp()
mederic 0:46326feade89 47 *
mederic 0:46326feade89 48 * The float() operator can be used as a shorthand for getTemp() to simplify common code sequences
mederic 0:46326feade89 49 *
mederic 0:46326feade89 50 * Example:
mederic 0:46326feade89 51 * @code
mederic 0:46326feade89 52 * float x = therm.getTemp();
mederic 0:46326feade89 53 * float x = therm;
mederic 0:46326feade89 54 *
mederic 0:46326feade89 55 * if(therm.getTemp() > 20.25) { ... }
mederic 0:46326feade89 56 * if(therm > 20.25) { ... }
mederic 0:46326feade89 57 * @endcode
mederic 0:46326feade89 58 */
mederic 0:46326feade89 59 operator float(){return getTemp();}
mederic 0:46326feade89 60 #endif
mederic 0:46326feade89 61
mederic 0:46326feade89 62 private:
mederic 0:46326feade89 63 I2C *_i2c;
mederic 0:46326feade89 64 int _addr;
mederic 0:46326feade89 65 };
mederic 0:46326feade89 66
mederic 0:46326feade89 67 #endif