LM75B Digital temperature sensor and thermal watchdog

Dependents:   testLM75B testSensor TCPSocket_Client

Committer:
Rhyme
Date:
Wed Jul 06 07:28:18 2016 +0000
Revision:
2:f7dc7b327a4a
Parent:
1:61987c319606
sample code in the header had errors and they have been fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:1cf64e89f29d 1 #ifndef LM75B_H
Rhyme 0:1cf64e89f29d 2 #define LM75B_H
Rhyme 0:1cf64e89f29d 3
Rhyme 0:1cf64e89f29d 4 #include "mbed.h"
Rhyme 0:1cf64e89f29d 5
Rhyme 0:1cf64e89f29d 6 /**
Rhyme 0:1cf64e89f29d 7 * NXP LM75B Digital temperature sensor and thermal watchdog
Rhyme 0:1cf64e89f29d 8 *
Rhyme 0:1cf64e89f29d 9 * @code
Rhyme 0:1cf64e89f29d 10 #include "mbed.h"
Rhyme 0:1cf64e89f29d 11 #include "LM75B.h"
Rhyme 0:1cf64e89f29d 12 #define LM75B_I2C_ADDRESS (0x48)
Rhyme 0:1cf64e89f29d 13
Rhyme 0:1cf64e89f29d 14 #if defined (TARGET_KL25Z)
Rhyme 0:1cf64e89f29d 15 #define PIN_SCL PTE1
Rhyme 0:1cf64e89f29d 16 #define PIN_SDA PTE0
Rhyme 0:1cf64e89f29d 17 #elif defined (TARGET_KL46Z)
Rhyme 0:1cf64e89f29d 18 #define PIN_SCL PTE1
Rhyme 0:1cf64e89f29d 19 #define PIN_SDA PTE0
Rhyme 0:1cf64e89f29d 20 #elif defined (TARGET_K64F)
Rhyme 0:1cf64e89f29d 21 #define PIN_SCL PTE24
Rhyme 0:1cf64e89f29d 22 #define PIN_SDA PTE25
Rhyme 0:1cf64e89f29d 23 #elif defined (TARGET_K22F)
Rhyme 0:1cf64e89f29d 24 #define PIN_SCL PTE1
Rhyme 0:1cf64e89f29d 25 #define PIN_SDA PTE0
Rhyme 0:1cf64e89f29d 26 #elif defined (TARGET_KL05Z)
Rhyme 0:1cf64e89f29d 27 #define PIN_SCL PTB3
Rhyme 0:1cf64e89f29d 28 #define PIN_SDA PTB4
Rhyme 0:1cf64e89f29d 29 #elif defined (TARGET_NUCLEO_F411RE)
Rhyme 0:1cf64e89f29d 30 #define PIN_SCL PB_8
Rhyme 0:1cf64e89f29d 31 #define PIN_SDA PB_9
Rhyme 0:1cf64e89f29d 32 #else
Rhyme 0:1cf64e89f29d 33 #error TARGET NOT DEFINED
Rhyme 0:1cf64e89f29d 34 #endif
Rhyme 0:1cf64e89f29d 35
Rhyme 0:1cf64e89f29d 36 int main() {
Rhyme 0:1cf64e89f29d 37 int8_t itemp = 0 ;
Rhyme 0:1cf64e89f29d 38 float ftemp = 0.0 ;
Rhyme 0:1cf64e89f29d 39 LM75B lm75b(PIN_SDA, PIN_SCL, LM75B_I2C_ADDRESS) ;
Rhyme 0:1cf64e89f29d 40
Rhyme 0:1cf64e89f29d 41 while(1) {
Rhyme 2:f7dc7b327a4a 42 itemp = lm75b.temp() ;
Rhyme 2:f7dc7b327a4a 43 lm75b.getTemp(&ftemp) ;
Rhyme 0:1cf64e89f29d 44 printf("Temp = %d C degree, %.3f C degree\n", itemp, ftemp) ;
Rhyme 0:1cf64e89f29d 45 wait(1) ;
Rhyme 0:1cf64e89f29d 46 }
Rhyme 0:1cf64e89f29d 47 }
Rhyme 0:1cf64e89f29d 48 * @endcode
Rhyme 0:1cf64e89f29d 49 */
Rhyme 0:1cf64e89f29d 50 class LM75B
Rhyme 0:1cf64e89f29d 51 {
Rhyme 0:1cf64e89f29d 52 public:
Rhyme 0:1cf64e89f29d 53 /**
Rhyme 0:1cf64e89f29d 54 * LM75B constructor
Rhyme 0:1cf64e89f29d 55 *
Rhyme 0:1cf64e89f29d 56 * @param sda SDA pin
Rhyme 0:1cf64e89f29d 57 * @param sdl SCL pin
Rhyme 0:1cf64e89f29d 58 * @param addr addr of the I2C peripheral
Rhyme 0:1cf64e89f29d 59 */
Rhyme 0:1cf64e89f29d 60 LM75B(PinName sda, PinName scl, int addr);
Rhyme 0:1cf64e89f29d 61
Rhyme 0:1cf64e89f29d 62 /**
Rhyme 0:1cf64e89f29d 63 * LM75B destructor
Rhyme 0:1cf64e89f29d 64 */
Rhyme 0:1cf64e89f29d 65 ~LM75B();
Rhyme 0:1cf64e89f29d 66
Rhyme 1:61987c319606 67 /**
Rhyme 1:61987c319606 68 * get temperature as one byte (signed)
Rhyme 1:61987c319606 69 */
Rhyme 0:1cf64e89f29d 70 int8_t temp(void) ;
Rhyme 1:61987c319606 71
Rhyme 1:61987c319606 72 /**
Rhyme 1:61987c319606 73 * get temperature as 11 bit (float)
Rhyme 1:61987c319606 74 */
Rhyme 0:1cf64e89f29d 75 void getTemp(float *temp) ;
Rhyme 1:61987c319606 76
Rhyme 1:61987c319606 77 /**
Rhyme 1:61987c319606 78 * get configuration register
Rhyme 1:61987c319606 79 */
Rhyme 0:1cf64e89f29d 80 uint8_t getConfig(uint8_t ptr_byte) ;
Rhyme 1:61987c319606 81
Rhyme 1:61987c319606 82 /**
Rhyme 1:61987c319606 83 * set configuration register
Rhyme 1:61987c319606 84 */
Rhyme 0:1cf64e89f29d 85 void setConfig(uint8_t ptr_byte, uint8_t config_data) ;
Rhyme 0:1cf64e89f29d 86
Rhyme 0:1cf64e89f29d 87 private:
Rhyme 0:1cf64e89f29d 88 I2C m_i2c;
Rhyme 0:1cf64e89f29d 89 int m_addr;
Rhyme 0:1cf64e89f29d 90 void readRegs(int addr, uint8_t * data, int len);
Rhyme 0:1cf64e89f29d 91 void writeRegs(uint8_t * data, int len);
Rhyme 0:1cf64e89f29d 92
Rhyme 0:1cf64e89f29d 93 };
Rhyme 0:1cf64e89f29d 94
Rhyme 0:1cf64e89f29d 95 #endif