Mangue Baja Personalized MLX program

my_mlx.h

Committer:
einsteingustavo
Date:
2019-08-01
Revision:
0:b8c679416b97

File content as of revision 0:b8c679416b97:

/*************************************************** 
  This is a library for the MLX90614 Temp Sensor
  Designed specifically to work with the MLX90614 sensors in the
  adafruit shop
  ----> https://www.adafruit.com/products/1748
  ----> https://www.adafruit.com/products/1749
  These sensors use I2C to communicate, 2 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!
  Written by Limor Fried/Ladyada for Adafruied in any redistribution
 ****************************************************/

#include "mbed.h"

#define _addr 0x5A
#define MLX90614_I2CADDR 0x5A

// RAM
#define MLX90614_RAWIR1 0x04
#define MLX90614_RAWIR2 0x05
#define MLX90614_TA 0x06
#define MLX90614_TOBJ1 0x07
#define MLX90614_TOBJ2 0x08
// EEPROM
#define MLX90614_TOMAX 0x20
#define MLX90614_TOMIN 0x21
#define MLX90614_PWMCTRL 0x22
#define MLX90614_TARANGE 0x23
#define MLX90614_EMISS 0x24
#define MLX90614_CONFIG 0x25
#define MLX90614_ADDR 0x0E
#define MLX90614_ID1 0x3C
#define MLX90614_ID2 0x3D
#define MLX90614_ID3 0x3E
#define MLX90614_ID4 0x3F

class Adafruit_MLX90614  {
 public:
  Adafruit_MLX90614(PinName sda, PinName scl);
  Adafruit_MLX90614(I2C *i2c);
  ~Adafruit_MLX90614();
  bool begin();
  uint32_t readID(void);

  double readObjectTempC(void);
  double readAmbientTempC(void);
  double readObjectTempF(void);
  double readAmbientTempF(void);

 private:
  float readTemp(uint8_t reg);
  I2C *i2c_;
  uint16_t read16(uint8_t addr);
  void write16(uint8_t addr, uint16_t data);
};