(SKU:TOY0045)TMP100 Temperature Sensor(Gadgeteer Compatible)
来自DFRobot Product Wiki
目录 |
概述
这是一款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℃
接线图
地址对照表
TMP100寄存器介绍
一、指针寄存器
表1:指针寄存器位(8Bits)
表2:数据寄存器的指针地址
二、配置寄存器
表3:配置寄存器位(8Bits)
对各位的描述如下:
SD:置1时,TMP100进入SHUT DOWN模式;置0时,进入连续温度转换模式;
OS/ALERT:TMP100进入SHUT DOWN模式下,该位被置1后,将启动一次温度的测量转换,完成后继续进入SHUT DOWN模式;
R1、R0:用于选择TMP100的分辨率,共四种,9Bits、10Bits、11Bits、12Bits,对应的选择关系见表4。
表4:TMP100的分辨率设置
三、温度寄存器
表5:温度寄存器位(16Bits)
示例代码
/* Sample code for the TMP100 Temperature sensor website:www.DFRobot.com Connection: VCC-5V GND-GND SDA-Analog pin 4 SCL-Analog pin 5 */ #include <Wire.h> 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(); }
相关文档
购买TMP100 Temperature Sensor(Gadgeteer Compatible) (SKU:TOY0045)