#include "Adafruit_MLX90614.h"
Adafruit_MLX90614::Adafruit_MLX90614(uint8_t i2caddr) {
_addr = i2caddr;
}
boolean Adafruit_MLX90614::begin(void) {
Wire.begin();
return true;
}
//////////////////////////////////////////////////////
double Adafruit_MLX90614::readObjectTempF(void) {
return (readTemp(MLX90614_TOBJ1) * 9 / 5) + 32;
}
double Adafruit_MLX90614::readAmbientTempF(void) {
return (readTemp(MLX90614_TA) * 9 / 5) + 32;
}
double Adafruit_MLX90614::readObjectTempC(void) {
return readTemp(MLX90614_TOBJ1);
}
double Adafruit_MLX90614::readAmbientTempC(void) {
return readTemp(MLX90614_TA);
}
float Adafruit_MLX90614::readTemp(uint8_t reg) {
float temp;
temp = read16(reg);
temp *= .02;
temp -= 273.15;
return temp;
}
/*********************************************************************/
uint16_t Adafruit_MLX90614::read16(uint8_t a) {
uint16_t ret;
Wire.beginTransmission(_addr); // start transmission to device
Wire.write(a); // sends register address to read from
Wire.endTransmission(false); // end transmission
Wire.requestFrom(_addr, (uint8_t)3);// send data n-bytes read
ret = Wire.read(); // receive DATA
ret |= Wire.read() << 8; // receive DATA
uint8_t pec = Wire.read();
return ret;
}
基于Arduino的AMLX90614非接触式温度程序
5星 · 超过95%的资源 需积分: 22 42 浏览量
2015-12-18
12:58:37
上传
评论 7
收藏 1KB RAR 举报
zMister_
- 粉丝: 5563
- 资源: 13