0°

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

外观 概述技术规格接线图 温度传感器连接示意图地址对照表TMP100寄存器介绍

外观

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

概述

  • 这是一款TMP100数字温度传感器兼容Gadgeteer接口,内部共有5个奇存器,一个指针寄存器和四个数据寄存器。对数据寄存器的选择是通过指针寄存器的低2位来决定的,其中温度寄存器的数值通过I2C接口直接读出。
  • 这款温度传感器可根据硬件环境需要来选择地址和供电电压,地址通过模块上的A0和A1来选择,供电电压可通过拨动开关在5V和3.3V之间选择。

技术规格

  • 工作电压范围:2.7V~5.5V
  • 超低功耗:45uA(待机时0.1uA)
  • 接口方式:I2C
  • 可编程分辨率:9Bits到12Bits
  • 操作频率:100KHZ/400KHZ/3.4MHZ
  • 精度:测量温度在-25℃~85℃时,为±2℃;在-55℃~125℃时,为±3℃

接线图

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

温度传感器连接示意图

地址对照表

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

TMP100寄存器介绍

一、指针寄存器

表1:指针寄存器位(8Bits)

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

表2:数据寄存器的指针地址

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

二、配置寄存器

表3:配置寄存器位(8Bits)

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

对各位的描述如下:

SD:置1时,TMP100进入SHUT DOWN模式;置0时,进入连续温度转换模式; OS/ALERT:TMP100进入SHUT DOWN模式下,该位被置1后,将启动一次温度的测量转换,完成后继续进入SHUT DOWN模式; R1、R0:用于选择TMP100的分辨率,共四种,9Bits、10Bits、11Bits、12Bits,对应的选择关系见表4。 

表4:TMP100的分辨率设置

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

三、温度寄存器

表5:温度寄存器位(16Bits)

Arduino温度湿度传感器-TMP100 温度传感器(Gadgeteer Compatible)

示例代码

/*
 Sample code for the TMP100 Temperature sensor
 
 Connection:
 
 VCC-5V
 GND-GND
 SDA-Analog pin 4
 SCL-Analog pin 5
*/

#include 
int tmpAddress = B1001011;
int ResolutionBits = 10;
void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
  SetResolution();
}

void loop()
{
  getTemperature();
  delay(200);
}

float getTemperature()
{
  Wire.requestFrom(tmpAddress,2);
  byte MSB = Wire.read();
  byte LSB = Wire.read();
  int TemperatureSum = ((MSB << 8) | LSB) >> 4; 
  float celsius = TemperatureSum*0.0625;
  Serial.print("Celsius: ");
  Serial.println(celsius);
}

void SetResolution(){
  if (ResolutionBits < 9 || ResolutionBits > 12) exit;
  Wire.beginTransmission(tmpAddress);
  Wire.write(B00000001); //addresses the configuration register
  Wire.write((ResolutionBits-9) << 5); //writes the resolution bits
  Wire.endTransmission(); 
  Wire.beginTransmission(tmpAddress); //resets to reading the temperature
  Wire.write((byte)0x00);
  Wire.endTransmission();
}

本文整理于DFRobot wiki

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论