Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
TMP102.h
00001 // it is good practice to put a comment block on the top, with the name and details of the library 00002 // you can also include version numbers to keep track of changes/additions 00003 00004 /* TMP102 00005 00006 Simple library to get the temperature data from a TMP102 sensor over I2C. 00007 00008 v 1.0 - initial release 00009 00010 (c) Craig A. Evans, University of Leeds, Jan 2016 00011 00012 */ 00013 00014 // this is called a header guard and prevents a library from being included more than once 00015 // if it is not already defined, it is defined. If it it already defined, it won't be defined again 00016 // the header guard is closed at the end of the file 00017 #ifndef TMP102_H 00018 #define TMP102_H 00019 00020 // the next thing in a library is usually any required defines 00021 // addresses for ADD0 connected to GND 00022 #define TMP102_ADD 0x48 00023 #define TMP102_R_ADD 0x91 00024 #define TMP102_W_ADD 0x90 00025 00026 // register addresses 00027 #define TEMP_REG 0x00 00028 #define CONFIG_REG 0x01 00029 #define TLOW_REG 0x02 00030 #define THIGH_REG 0x03 00031 00032 // we need to include the mbed header (this will also have a header guard to prevent it being included more than once) 00033 #include "mbed.h" 00034 00035 // a library is actually just a C++ class, we will create an instance of this class (an object) in our main code 00036 class TMP102 00037 { 00038 // we define the methods that are 'public' i.e. able to be used by the user 00039 public: 00040 00041 // this is a 'constructor' and is used to create the object 00042 TMP102(PinName sda, PinName scl); 00043 00044 // we will also create an initialisation method 00045 void init(); 00046 00047 // and a method to get the temperature - note the return type 00048 float get_temperature(); 00049 00050 // we also have 'private' methods that can be used in the library itself, but not called directly by the user 00051 private: 00052 00053 // called in event of error - flashes LED and hangs 00054 void error(); 00055 // reads temperature from the sensor 00056 void read_temperature(); 00057 00058 00059 // we also do the same for any variables 00060 public: 00061 // don't generally allow direct access to variables, instead use 'accessor' and 'mutator' methods 00062 00063 private: 00064 00065 // class data member names often have a trailing underscore to make them easily identifiable 00066 I2C* i2c_; 00067 DigitalOut* led_; 00068 float temperature_; 00069 00070 }; 00071 00072 // end of the header guard 00073 #endif
Generated on Wed Aug 24 2022 18:50:52 by
1.7.2