Slightly revised version of the TMP102 library created by Craig A. Evans

Fork of TMP102 by Craig Evans

Committer:
andreykotov91
Date:
Sun May 08 17:36:52 2016 +0000
Revision:
2:3df27241f9b3
Parent:
1:1b601445b336
Library edited for use with project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andreykotov91 2:3df27241f9b3 1 /**
andreykotov91 2:3df27241f9b3 2 @file TMP102.h
eencae 0:8818842a3573 3
andreykotov91 2:3df27241f9b3 4 @brief Header file containing member functions and variables
eencae 0:8818842a3573 5
eencae 0:8818842a3573 6 */
eencae 0:8818842a3573 7
andreykotov91 2:3df27241f9b3 8 // header guard
eencae 0:8818842a3573 9 #ifndef TMP102_H
eencae 0:8818842a3573 10 #define TMP102_H
eencae 0:8818842a3573 11
andreykotov91 2:3df27241f9b3 12 // addresses
eencae 0:8818842a3573 13 #define TMP102_ADD 0x48
eencae 0:8818842a3573 14 #define TMP102_R_ADD 0x91
eencae 0:8818842a3573 15 #define TMP102_W_ADD 0x90
eencae 0:8818842a3573 16
andreykotov91 2:3df27241f9b3 17 // registers
eencae 0:8818842a3573 18 #define TEMP_REG 0x00
eencae 0:8818842a3573 19 #define CONFIG_REG 0x01
eencae 1:1b601445b336 20 #define TLOW_REG 0x02
eencae 1:1b601445b336 21 #define THIGH_REG 0x03
eencae 0:8818842a3573 22
eencae 0:8818842a3573 23 #include "mbed.h"
eencae 0:8818842a3573 24
andreykotov91 2:3df27241f9b3 25 /**
andreykotov91 2:3df27241f9b3 26 @brief Library for interfacing with TMP102 sensor in I2C
andreykotov91 2:3df27241f9b3 27
andreykotov91 2:3df27241f9b3 28 @brief v 1.0 - initial release
andreykotov91 2:3df27241f9b3 29
andreykotov91 2:3df27241f9b3 30 @author Craig A. Evans
andreykotov91 2:3df27241f9b3 31
andreykotov91 2:3df27241f9b3 32 @date January 2016
andreykotov91 2:3df27241f9b3 33
andreykotov91 2:3df27241f9b3 34 */
andreykotov91 2:3df27241f9b3 35
eencae 0:8818842a3573 36 class TMP102
eencae 0:8818842a3573 37 {
andreykotov91 2:3df27241f9b3 38
eencae 0:8818842a3573 39 public:
eencae 0:8818842a3573 40
andreykotov91 2:3df27241f9b3 41 /** Create a TMP102 object connected to the specified I2C pins
andreykotov91 2:3df27241f9b3 42 *
andreykotov91 2:3df27241f9b3 43 * @param sda - mbed SDA pin
andreykotov91 2:3df27241f9b3 44 * @param scl - mbed SCL pin
andreykotov91 2:3df27241f9b3 45 *
andreykotov91 2:3df27241f9b3 46 */
andreykotov91 2:3df27241f9b3 47
eencae 0:8818842a3573 48 TMP102(PinName sda, PinName scl);
eencae 0:8818842a3573 49
andreykotov91 2:3df27241f9b3 50 /** Initialise the object
andreykotov91 2:3df27241f9b3 51 */
eencae 0:8818842a3573 52 void init();
eencae 0:8818842a3573 53
andreykotov91 2:3df27241f9b3 54 /** Retrieve the temperature
andreykotov91 2:3df27241f9b3 55 *
andreykotov91 2:3df27241f9b3 56 * @returns temperature in degrees Celsius (°C)
andreykotov91 2:3df27241f9b3 57 *
andreykotov91 2:3df27241f9b3 58 */
eencae 0:8818842a3573 59 float get_temperature();
eencae 0:8818842a3573 60
eencae 0:8818842a3573 61 private:
eencae 0:8818842a3573 62
andreykotov91 2:3df27241f9b3 63 /** Called in event of error - flashes LED and hangs
andreykotov91 2:3df27241f9b3 64 */
andreykotov91 2:3df27241f9b3 65 void error();
andreykotov91 2:3df27241f9b3 66 /** Reads temperature from the sensor
andreykotov91 2:3df27241f9b3 67 */
andreykotov91 2:3df27241f9b3 68 void read_temperature();
andreykotov91 2:3df27241f9b3 69
andreykotov91 2:3df27241f9b3 70
andreykotov91 2:3df27241f9b3 71 public:
andreykotov91 2:3df27241f9b3 72
andreykotov91 2:3df27241f9b3 73
andreykotov91 2:3df27241f9b3 74 private:
andreykotov91 2:3df27241f9b3 75
andreykotov91 2:3df27241f9b3 76 /**Class data member names often have a trailing underscore to make them easily identifiable
andreykotov91 2:3df27241f9b3 77 */
eencae 0:8818842a3573 78 I2C* i2c_;
eencae 0:8818842a3573 79 DigitalOut* led_;
eencae 0:8818842a3573 80 float temperature_;
eencae 0:8818842a3573 81
eencae 0:8818842a3573 82 };
eencae 0:8818842a3573 83
eencae 0:8818842a3573 84 #endif