Mangue Baja Personalized MLX program
Diff: my_mlx.h
- Revision:
- 0:b8c679416b97
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/my_mlx.h Thu Aug 01 11:41:20 2019 +0000 @@ -0,0 +1,57 @@ +/*************************************************** + 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); +}; \ No newline at end of file