• 大小: 3.14KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-04-22
  • 语言: C/C++
  • 标签: MLX90614  arduino  

资源简介

使用Arduino采集MLX90614温度

资源截图

代码片段和文件信息

/*************************************************** 
  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 Adafruit Industries.  
  BSD license all text above must be included in any redistribution
 ****************************************************/

#include “Adafruit_MLX90614.h“

Adafruit_MLX90614::Adafruit_MLX90614(uint8_t i2caddr) {
  _addr = i2caddr;
}


boolean Adafruit_MLX90614::begin(void) {
  Wire.begin();

  /*
  for (uint8_t i=0; i<0x20; i++) {
    Serial.print(i); Serial.print(“ = “);
    Serial.println(read16(i) HEX);
  }
  */
  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;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2103  2014-02-28 14:24  MLX90614\Adafruit_MLX90614.cpp

     文件       1647  2014-02-28 14:24  MLX90614\Adafruit_MLX90614.h

     文件       1288  2014-02-28 14:24  MLX90614\examples\mlxtest\mlxtest.ino

     文件       1041  2014-02-28 14:24  MLX90614\README.txt

     目录          0  2014-12-04 08:27  MLX90614\examples\mlxtest

     目录          0  2014-12-04 08:27  MLX90614\examples

     目录          0  2014-12-04 08:27  MLX90614

----------- ---------  ---------- -----  ----

                 6079                    7


评论

共有 条评论