Added a GPIO to power on/off for external I2C sensor(s) (with LEDs)

Dependencies:   UniGraphic mbed vt100

18-Jun-2018 外部センサの電源オン・オフ機能は下位互換の為に無効になっていました。 この版で再度有効にしました。

Revision:
0:846e2321c637
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensors/LM75B.h	Fri Apr 13 04:19:23 2018 +0000
@@ -0,0 +1,104 @@
+#ifndef _LM75B_H_
+#define _LM75B_H_
+
+#include "mbed.h"
+
+/**
+* NXP LM75B Digital temperature sensor and thermal watchdog
+*
+* @code
+#include "mbed.h"
+#include "LM75B.h"
+#define LM75B_I2C_ADDRESS (0x48)
+
+#if defined (TARGET_KL25Z)
+#define PIN_SCL  PTE1
+#define PIN_SDA  PTE0
+#elif defined (TARGET_KL46Z)
+#define PIN_SCL  PTE1
+#define PIN_SDA  PTE0
+#elif defined (TARGET_K64F)
+#define PIN_SCL  PTE24
+#define PIN_SDA  PTE25
+#elif defined (TARGET_K22F)
+#define PIN_SCL  PTE1
+#define PIN_SDA  PTE0
+#elif defined (TARGET_KL05Z)
+#define PIN_SCL  PTB3
+#define PIN_SDA  PTB4
+#elif defined (TARGET_NUCLEO_F411RE)
+#define PIN_SCL  PB_8
+#define PIN_SDA  PB_9
+#else
+ #error TARGET NOT DEFINED
+#endif
+
+int main() {
+    int8_t itemp = 0 ;
+    float ftemp = 0.0 ;
+    LM75B lm75b(PIN_SDA, PIN_SCL, LM75B_I2C_ADDRESS) ;
+    
+    while(1) {
+        itemp = lm75b.temp() ;
+        lm75b.getTemp(&ftemp) ;
+        printf("Temp = %d C degree,  %.3f C degree\n", itemp, ftemp) ;
+        wait(1) ;
+    }
+}
+* @endcode
+*/
+class LM75B
+{
+public:
+  /**
+  * LM75B constructor
+  *
+  * @param i2c pointer to the I2C object
+  * @param addr addr of the I2C peripheral
+  */
+  LM75B(I2C *i2c, int addr);
+
+  /**
+  * LM75B destructor
+  */
+  ~LM75B();
+
+  /**
+  * get temperature as one byte (signed)
+  * @param *temp int8_t returns integer part of the temperature
+  * @return 0: success not-0: failure
+  */
+  int temp(int8_t *temp) ;
+  
+  /**
+   * get temperature as 11 bit (float)
+   * @param *temp float returns the temperature as float 
+   * @return 0: success not-0: failure
+   */
+  int getTemp(float *temp) ;
+  
+  /**
+   * get configuration register
+   * @param ptr_byte uint8_t pointer value for the register
+   * @param *config_data uint8_t value of the config register
+   * @return 0: success non-0: failure
+   */
+  int getConfig(uint8_t ptr_byte, uint8_t *config_data) ;
+  
+  /**
+   * set configuration register
+   * @param ptr_byte uint8_t pointer value for the register
+   * @param config_data uint8_t value to set in the config register
+   * @return 0: success non-0: failure
+   */
+  int setConfig(uint8_t ptr_byte, uint8_t config_data) ;
+
+private:
+  I2C *p_i2c;
+  int m_addr;
+  int readRegs(int addr, uint8_t * data, int len);
+  int writeRegs(uint8_t * data, int len);
+
+};
+
+#endif
\ No newline at end of file