Slightly revised version of the TMP102 library created by Craig A. Evans
Fork of TMP102 by
TMP102.h@2:3df27241f9b3, 2016-05-08 (annotated)
- 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?
User | Revision | Line number | New 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 |