Grove - I2C 热电偶放大器 (MCP9600)

Grove - I2C 热电偶放大器 (MCP9600) 是一个集成了冷端补偿和 I2C 通信协议的热电偶数字转换器。该模块设计用于与 K 型热电偶配合使用。热电偶比热敏电阻具有更大的测量范围。例如,我们网站上的这款 K 型热电偶 的测量范围为 -50℃ 到 +600℃。
我们还为该模块提供了报警功能,您可以使用可编程报警引脚为控制器提供中断信号。
再次说明,该模块无法单独工作,必须与 K 型热电偶配合使用,如果您没有热电偶,可以考虑我们商城中的 热电偶温度传感器 K 型-1M。
版本
产品版本 | 变更 | 发布日期 |
---|---|---|
Grove - I2C 热电偶放大器 (MCP9600) | 初始版本 | 2018年8月 |
特性
- 集成冷端补偿
- 支持的类型(由 NIST ITS-90 指定):K、J、T、N、S、E、B 和 R 型
- 四个可编程温度报警输出:
- 监控热端或冷端温度
- 检测温度上升或下降
- 高达 255°C 的可编程滞后
- 可编程数字温度滤波器
- 低功耗
Grove - I2C 热电偶放大器 (MCP9600) 在硬件上确实支持 K、J、T、N、S、E、B 和 R 型,但是目前我们的库除了 K 型热电偶外不支持任何其他类型的热电偶。
规格参数
项目 | 值 |
---|---|
工作电压 | 3.3V/5V |
环境温度 | -40℃ ~ +125℃ |
存储温度 | -65℃ ~ +150℃ |
最大结温 | +150℃ |
热端精度 | ±1.5°C(最大值) |
测量分辨率 | 热端和冷端:0.0625°C(典型值) |
接口 | I2C |
I2C 地址 | 0x60(默认)/ 0x67(可选) |
尺寸 | 长:40mm 宽:20mm 高:18mm |
重量 | 4.8g |
包装尺寸 | 长:130mm 宽:85mm 高:20mm |
毛重 | 11g |
应用
- 石化热管理
- 手持式测量设备
- 工业设备热管理
- 烤箱
- 工业发动机热监控
- 温度检测架
硬件概述
引脚图


原理图
电源

MCP9600的工作电压范围是2.7V ~ 5.5V,我们使用电源转换芯片XC6206P332MR-G为MCP9600提供稳定的3.3V电源。
输入插座

由于涉及的信号电平很小,我们采取了很多措施来过滤噪声。
-
1--L1,L2 我们使用长达1米的热电偶。这样的长导线可以被视为天线,会接收空间电场干扰并产生高频噪声。因此我们使用两个电感来过滤高频噪声。
-
2--C1 芯片制造商强烈建议添加一个100nF陶瓷表面贴装差分电容器,放置在T+和T-引脚之间,以过滤热电偶线路上的噪声。
-
3--D1 我们使用SZNUP2105LT3G双向电压抑制器来保护此模块免受ESD(静电放电)的影响。
双向电平转换电路

这是一个典型的双向电平转换电路,用于连接I2C总线的两个不同电压部分。该传感器的I2C总线使用3.3V,如果Arduino的I2C总线使用5V,则需要此电路。在上面的原理图中,Q1和Q5是N沟道MOSFET 2N7002A,充当双向开关。为了更好地理解这部分,您可以参考AN10441
支持的平台
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上述提到的支持平台是/是模块软件或理论兼容性的指示。在大多数情况下,我们只为Arduino平台提供软件库或代码示例。不可能为所有可能的MCU平台提供软件库/演示代码。因此,用户必须编写自己的软件库。
开始使用
与Arduino一起使用
硬件
所需材料
Seeeduino V4.2 | Base Shield | Grove - I2C热电偶放大器 |
---|---|---|
![]() | ![]() | ![]() |
立即购买 | 立即购买 | 立即购买 |
-
步骤1. 将Grove - I2C热电偶放大器(MCP9600)连接到Grove-Base Shield的I2C端口。
-
步骤2. 将Grove - Base Shield插入Seeeduino。
-
步骤3. 通过USB线缆将Seeeduino连接到PC。

如果我们没有Grove Base Shield,我们也可以按照以下方式直接将此模块连接到Seeeduino。
Seeeduino | Grove线缆 | Grove - I2C热电偶放大器 |
---|---|---|
GND | 黑色 | GND |
5V / 3.3V | 红色 | VCC |
SDA | 白色 | SDA |
SCL | 黄色 | SCL |
软件
如果这是您第一次使用Arduino,我们强烈建议您在开始之前先查看Arduino入门指南。
-
步骤1. 从Github下载Seeed_MCP9600库。
-
步骤2. 参考如何安装库来为Arduino安装库。
-
步骤3. 重启Arduino IDE。打开示例,您可以通过以下三种方式打开:
- 在Arduino IDE中通过路径直接打开:文件 --> 示例 --> Grove Temperature sensor MCP9600 --> MCP9600_4channel_INT_demo。
- 在您的计算机中点击MCP9600_4channel_INT_demo.ino打开,您可以在文件夹XXXX\Arduino\libraries\Seeed_MCP9600-master\examples\MCP9600_4channel_INT_demo中找到它,XXXX是您安装Arduino IDE的位置。
- 或者,您可以直接点击代码块右上角的图标
将以下代码复制到Arduino IDE的新草图中。
#include "Seeed_MCP9600.h"
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#else
#define SERIAL Serial
#endif
MCP9600 sensor;
/**@brief 中断配置。
*
*
* */
err_t sensor_INT_config()
{
err_t ret=NO_ERROR;
CHECK_RESULT(ret,sensor.set_filt_coefficients(FILT_MID));
for(int i=0;i<4;i++)
{
/*将温度数值转换为16位数据*/
CHECK_RESULT(ret,sensor.set_alert_limit(i,sensor.covert_temp_to_reg_form(28+i)));
/*设置滞后。例如,设置滞后为2℃,当中断限制为30℃时,当温度超过限制时将产生中断,
中断标志将保持,直到温度低于30-2(限制-滞后) 28℃。 */
CHECK_RESULT(ret,sensor.set_alert_hys(i,2));
/*设置中断产生时引脚的状态*/
CHECK_RESULT(ret,sensor.set_alert_bit(i,ACTIVE_LOW));
CHECK_RESULT(ret,sensor.clear_int_flag(i));
/*默认为比较器模式*/
CHECK_RESULT(ret,sensor.set_alert_mode_bit(i,COMPARE_MODE));
/*设置报警引脚启用。*/
CHECK_RESULT(ret,sensor.set_alert_enable(i,ENABLE));
}
/*设备配置*/
CHECK_RESULT(ret,sensor.set_cold_junc_resolution(COLD_JUNC_RESOLUTION_0_25));
CHECK_RESULT(ret,sensor.set_ADC_meas_resolution(ADC_14BIT_RESOLUTION));
CHECK_RESULT(ret,sensor.set_burst_mode_samp(BURST_32_SAMPLE));
CHECK_RESULT(ret,sensor.set_sensor_mode(NORMAL_OPERATION));
return NO_ERROR;
}
err_t get_temperature(float *value)
{
err_t ret=NO_ERROR;
float hot_junc=0;
float junc_delta=0;
float cold_junc=0;
bool stat=true;
CHECK_RESULT(ret,sensor.check_data_update(&stat));
if(stat)
{
CHECK_RESULT(ret,sensor.read_hot_junc(&hot_junc));
CHECK_RESULT(ret,sensor.read_junc_temp_delta(&junc_delta));
CHECK_RESULT(ret,sensor.read_cold_junc(&cold_junc));
*value=hot_junc;
}
else
{
SERIAL.println("数据未就绪!!");
}
return NO_ERROR;
}
void setup()
{
SERIAL.begin(115200);
delay(10);
SERIAL.println("串口启动!!");
if(sensor.init(THER_TYPE_K))
{
SERIAL.println("传感器初始化失败!!");
}
sensor_INT_config();
}
void loop()
{
float temp=0;
u8 byte=0;
u8 stat=0;
get_temperature(&temp);
SERIAL.print("温度 ==============================>>");
SERIAL.println(temp);
sensor.read_INT_stat(&stat);
SERIAL.println(" ");
SERIAL.println(" ");
delay(1000);
}
库中有2个演示程序:
MCP9600_basic_demo.ino
这个例子是温度传感器的基本使用示例,您需要轮询获取数据。
MCP9600_4channel_INT_demo.ino
传感器模块上有四个连接到报警引脚的报警焊盘。您可以通过调用我们提供的API来设置温度限制。当温度值超出限制时,报警引脚输出低电平。您可以将报警引脚连接到主机的中断引脚,以提高程序运行效率。
-
步骤4. 上传演示程序。如果您不知道如何上传代码,请查看如何上传代码。
-
步骤5. 通过点击工具-> 串口监视器打开Arduino IDE的串口监视器。或者同时按下++ctrl+shift+m++键。将波特率设置为115200。
如果一切正常,当您打开串口监视器时,您将看到温度值和报警信息。
serial start!!
version =4011
temperature ==============================>>25.81
temperature ==============================>>27.62
temperature ==============================>>29.37
channel 0generate interruption!!!
channel 1generate interruption!!!
temperature ==============================>>30.81
channel 0generate interruption!!!
channel 1generate interruption!!!
channel 2generate interruption!!!
temperature ==============================>>31.56
channel 0generate interruption!!!
channel 1generate interruption!!!
channel 2generate interruption!!!
channel 3generate interruption!!!
temperature ==============================>>28.56
channel 0generate interruption!!!
channel 1generate interruption!!!
channel 2generate interruption!!!
temperature ==============================>>27.33
channel 0generate interruption!!!
channel 1generate interruption!!!
temperature ==============================>>26.71
channel 0generate interruption!!!
报警功能

如您所见,当温度上升和温度下降触发中断时存在滞后现象。例如,当温度上升时,当达到28℃时,报警引脚0将触发,而当温度下降时,限制点变为26℃。只有当温度低于26℃时,报警引脚0才会释放。
滞后 = 28℃-26℃ = 2℃
报警引脚1、报警引脚2和报警引脚3遵循相同的原理。您可以通过修改第23行和第26行来更改滞后值和限制。
CHECK_RESULT(ret,sensor.set_alert_limit(i,sensor.covert_temp_to_reg_form(28+i)));
/*设置滞后。例如,设置滞后为2℃,当中断限制为30℃时,当温度超过限制时将产生中断,
中断标志将保持,直到温度低于30-2(限制-滞后)28℃。 */
CHECK_RESULT(ret,sensor.set_alert_hys(i,2));
使用参数i选择报警引脚号,参数28是限制值,至于滞后,我们使用函数sensor.set_alert_hys(i,2)。 参数2是滞后值。
原理图在线查看器
资源
-
[Zip] Seeed MCP9600 库
-
[PDF] MCP9600 数据手册
项目
这是本产品的介绍视频,包含简单的演示,您可以尝试一下。
技术支持与产品讨论
可升级为工业传感器
通过 SenseCAP S2110 控制器和 S2100 数据记录器,您可以轻松将 Grove 转换为 LoRaWAN® 传感器。Seeed 不仅帮助您进行原型设计,还为您提供了使用 SenseCAP 系列坚固的工业传感器扩展项目的可能性。
IP66 外壳、蓝牙配置、与全球 LoRaWAN® 网络的兼容性、内置 19 Ah 电池以及来自 APP 的强大支持,使 SenseCAP S210x 成为工业应用的最佳选择。该系列包括土壤湿度、空气温湿度、光照强度、CO2、EC 传感器以及 8 合 1 气象站。为您下一个成功的工业项目尝试最新的 SenseCAP S210x。