(SKU:SEN0254)TC01 16x4红外线阵列温度传感器Modbus

来自DFRobot Product Wiki
跳转至: 导航搜索

[[image:|thumb|right|300px|(SKU:SEN0254)]]

目录

简介

DFRobot TC01 16x4红外线阵列温度传感器主要功能为远程非接触红外线阵列温度检测,可以检测16x4个温度阵列,可以不接触目标而通过测量物体发出的红外辐射强度计算出物体的表面温度,具有内部温度补偿,可准确检测环境温度及目标温度。
传感器采用金属材质外壳,具有防水、防尘等优点,使用标准Modbus-RTU通讯协议兼容,RS485输出采用屏蔽导线能够避免在复杂环境中使用受到环境干扰,在输出数据稳定可靠的前提下更具有超越众多市场同类产品的检测性能。

产品参数

  • 工作电压:9-24V DC
  • 额定功率:0.1W
  • 工作温度:-20℃-85℃
  • 测量温度:-20℃-300℃
  • 测量精度:±1℃~±5.5℃
  • 红外线阵列:16x4
  • FOV视场角:60°x 16°
  • 防护等级:IP65
  • 通讯接口:RS485
  • 通讯协议:Modbus-RTU
  • 探头直径:15.4 mm
  • 探头长度:79 mm
  • 电缆长度:1.5m
  • 电缆接口:剥口镀锡线

产品外形示意图

TC01尺寸图

接口线序如下:
1.白------VCC(电源)
2.黑------GND(电源地)
3.橙------RS485-A
4.棕------RS485-B



像素排列

TC01 像素排列示意图

注意:传感器红外线阵列共有16x4个像素

测量精度梯度变化示意图

TC01测量精度变化示意图

注:

To-测量温度
Ta-环境温度
uniformity-统一指标

注意:

所有精度规格仅适用于稳定的等温条件。
此外,只有当被测物完全覆盖传感器的视场角FOV时,精度才有效。
图中所示精度参数为产品四个中心像素点的精度,其余像素点精度采用统一指标。
由于长期(年)漂移,在室温附近所测得物体温度可能会有±3°C的额外测量偏差。

Arduino驱动示例

准备

库安装

硬件连接示意图

TC01连线图


示例代码

打印输出
#include <ArduinoModbus.h>
#include <ArduinoRS485.h>

#define baudRate 115200
#define addr 0x0A

float To[64]= {0.0};
float Ta= 0.0;

void getTa()
{
    if (!ModbusRTUClient.requestFrom(addr, HOLDING_REGISTERS, 0x45,1)) 
    {
        Serial.println("error: ");
        Serial.println(ModbusRTUClient.lastError());
    } 
    else 
    {
        Ta= ModbusRTUClient.read()/10.0;
    }
    delay(100);
}

void getTo()
{
  for(uint8_t row=0;row<4;row++)
  {
    if (!ModbusRTUClient.requestFrom(addr, HOLDING_REGISTERS, 0x05+(row*0x10),0x10)) 
    {
        Serial.print("error: ");
        Serial.println(row);
        Serial.println(ModbusRTUClient.lastError());
    } 
    else 
    {
        for(uint8_t i=0; i<16; i++)
        {
            To[row*16+i]=ModbusRTUClient.read()/10.0;
        }
    }
    delay(100);
  }
}

void setup() {
    Serial.begin(baudRate);
    ModbusRTUClient.begin(baudRate);
}

void loop() {

    /**********Ta*****************/
    getTa();
    Serial.println("======== Ta ========");
    Serial.println(Ta,1);

    /**********TO**********************/
    getTo();
    Serial.println("======== To ========");
    for(uint8_t i=0; i<64; i++)
    {
        Serial.print(To[i],1);
        Serial.print("  ");
        if((i+1)%16==0)Serial.println();
    }
    delay(100);
}

更多


DFshopping car1.png [Link DFRobot商城购买链接]

个人工具
名字空间

变换
操作
导航
工具箱