TMP1075数字温度传感器ESP32-C6测试
本文介绍了TMP1075数字温度传感器的基本使用与测试方法。TMP1075是TI公司推出的高精度(±0.25°C)、低功耗(2.7μA)数字温度传感器,支持I2C接口,适用于物联网、医疗设备等多种场景。测试使用ESP32-C6开发板,通过I2C接口连接传感器,并提供了完整的Arduino代码示例,实现温度数据读取和串口输出功能。文中详细说明了硬件连接方式、软件配置步骤以及数据读取方法,最后展示了串
提示:本文内容仅供学习参考。Author: Jonnie Walker
前言
你好! 本文将为你介绍TMP1075数字温度传感器的基本使用与测试过程。首先是传感器基本特征参数及应用场景。后面逐步进行传感器测试并打印数据。好了,那我们开始吧!
一、TMP1075是什么?
TMP1075 是德州仪器(TI)推出的一款高精度、低功耗数字温度传感器,适用于多种嵌入式系统和物联网应用。图1是本次使用的传感器模块。
图1

以下是其关键特性及详细信息的整理:
-
高精度测量
-
精度:±0.25°C(典型值,-55°C至+125°C),±1°C(最大值,-40°C至+110°C),±2°C(最大值,-55°C至+125°C)。
-
分辨率:12位数字输出(0.0625°C/位)。
-
-
宽工作电压与低功耗
-
电压范围:1.62V至5.5V,兼容电池供电设备。温度与电源无关。
-
功耗:
-
连续模式:2.7µA(典型值)。
-
关断模式:0.37µA(典型值)。
-
单次转换模式:支持按需测量后自动休眠,进一步降低平均功耗。
-
-
-
灵活的接口与配置
-
通信接口:I2C/SMBus兼容,支持标准(100kHz)和快速(400kHz)模式。注:可兼容I3C混合快速模式总线。
-
地址配置:通过AD0/AD1/AD2引脚可设置不同I2C地址(默认0x48),允许单总线连接多个传感器。支持高达32个I2C地址。
-
-
可编程功能
-
转换速率:用户可调(15ms至4秒),平衡响应速度与功耗。
-
警报输出:支持温度阈值设定,通过ALERT引脚触发中断,阈值寄存器可编程。
-
软件:与业界通用LM75和TMP75兼容。
-
-
封装与尺寸
-
提供 WSON-6(2mm×2mm) 和 DSBGA-6(1.25mm×1.35mm) 超小封装,适合空间敏感设计。
-
应用场景:
1.物联网设备:如智能家居传感器、环境监测节点。
2.便携医疗设备:体温计、可穿戴健康监测。
3.工业系统:电机/PCB温度监控、HVAC控制。
4.消费电子:手机、平板电脑热管理。
二、测试步骤
1.硬件
下面是本次测试使用的硬件部分。
图2 
图3

图3是tmp1075数字温度传感器的原理图。A0,A1,A2,是地址选择引脚,这里全部接地默认 地址。
根据下表内容连接我们硬件电路:
| TMP1075引脚 | ESP32-C6引脚 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | IO6 (SDA) |
| SCL | IO7 (SCL) |
| ALERT | NC |
| AD0/AD1 | NC |
注意:TMP1075默认I2C地址为 0x48(AD0/AD1悬空)。
2.软件
硬件准备好后,开始上我们的软件了,将下面代码进行编译,然后下载到硬件电路:
提示:本次开发环境为ArduinoIDE2.0版本,并且你要更新ESP32最新V3.0固件包如图4:
图4

才能使用ESP32C6开发版,其实本次测试不一定使用ESP32-C6用C3,S3 等都是可以的,只需要改一下程序中IIC初始化硬件引脚部分代码就可以了!
/**
* @file tmp1075_T1.ino
* @author Jonnie Walker ite
* @brief TMP1075+ESP32-C6_Test
* @version 0.1
* @date 2025-05-20
*
* @copyright Copyright (c) 2025
*
* --------------------------------------------------/
*
*
*
*
*/
#include <Wire.h>
// TMP1075 I2C address (default 0x48, AD0/AD1 adjustable)
#define TMP1075_ADDR 0x48
void setup() {
Serial.begin(115200);
// Wire.begin();
Wire.begin(6, 7); // SDA, SCL
delay(100); // Wait for the sensor to stabilize
// Optional: Configure the TMP1075 working mode (default continuous conversion, no additional configuration required)
// Configuration example: Single conversion mode + 12-bit resolution
Wire.beginTransmission(TMP1075_ADDR);
Wire.write(0x01); // Point to the configuration register (0x01)
Wire.write(0xA0); // Single mode (BIT7=1), 12-bit resolution (BIT5-6=00)
Wire.write(0x00); // Default alarm polarity/mode
Wire.endTransmission();
}
void loop() {
float temperature = readTemp();
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000); //Read once per second
}
// Read the temperature function
float readTemp() {
// Trigger a single conversion (if configured to single mode)
Wire.beginTransmission(TMP1075_ADDR);
Wire.write(0x01); // Points to the configuration register
Wire.write(0xA0 | 0x01); // Maintain the configuration and trigger a single conversion (BIT0=1)
Wire.endTransmission();
// Wait for conversion to complete (about 15ms 12bit)
delay(20);
// Read temperature data (2 bytes)
Wire.beginTransmission(TMP1075_ADDR);
Wire.write(0x00); // Point to the temperature register (0x00)
Wire.endTransmission(false); // Maintain the I2C connection
Wire.requestFrom(TMP1075_ADDR, 2);
if (Wire.available() >= 2) {
int16_t rawData = (Wire.read() << 8) | Wire.read();
return (rawData >> 4) * 0.0625; // 12-bit conversion formula
}
return -999; // Reading failed
}
程序中我们没有使用ALERT中断报警功能!现在我们可以通过串口工具观察数据输出情况如下图:
图5

从图5中我们可以看到输出的温度数据,这里输出的是原始数据没有经过处理,可能与真实环境温度有差别!你可以通过一些算法处理这些数据实其达到真实环境温度。
总结
经过本次测试你应该对TMP1075有一点了解了吧!通过硬件到软件来讲TMP1075数字温度计的数据读取过程。可能内容会错过你需要的数据!抱歉!也非常感谢你能看到这里,你的点赞是我的动力。iTEM
Thanks♪(・ω・)ノ
更多推荐



所有评论(0)