“(SKU:SEN0254)TC01 16x4红外线阵列温度传感器Modbus”的版本间的差异

来自DFRobot Product Wiki
跳转至: 导航搜索
测量精度梯度变化示意图
像素排列
第31行: 第31行:
 
<br><br>
 
<br><br>
  
===像素排列===
+
===像素排列示意图===
[[image:SEN0254-V1.0-像素位置.png|thumb|600px|center|TC01 像素排列示意图]]
+
[[image:SEN0254-V1.0-像素位置.png|thumb|600px|center|]]
 
注意:传感器红外线阵列共有16x4个像素
 
注意:传感器红外线阵列共有16x4个像素
  

2020年4月27日 (一) 09:14的版本

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

目录

简介

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

产品参数

  • 工作电压:9-24V DC
  • 额定功率:0.1W
  • 工作温度:-40℃-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



像素排列示意图

SEN0254-V1.0-像素位置.png

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

FOV及测量距离说明

传感器的视场角FOV为60°x 16°,被测目标的尺寸和红外测温仪的光学特性决定了被测目标和测量头之间的最大距离。
传感器视场角示意图如下所示:

SEN0254-V1.0-FOV示意图.png

测量精度梯度变化示意图

SEN0254-V1.0-测量精度图.png

注:

To-测量温度
Ta-环境温度
uniformity-均匀度

注意:

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

传感器Modbus-RTU寄存器表

SEN0254寄存器表

Arduino驱动示例

准备

库安装

硬件连接示意图

TC01连线图


示例代码

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

#define baudRate 19200
#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);
}

可视化测试软件

硬件连接

所需硬件及电气连接参考3.1和3.2 (无需安装库)

下载代码

/*
此代码实现将Leonardo做USB转485的功能,也可以用DF其他的USB转485工具测试
*/
void setup() {
  Serial.begin(19200); //初始化Serial(即USB串口)
  Serial1.begin(19200);//初始化Serial1
}
void loop() {
  while (Serial1.available()) {
    Serial.write(Serial1.read());//如果Serial1收到数据则通过Serial输出
  }
  while (Serial.available()) {
    Serial1.write(Serial.read());//如果Serial收到数据则通过Serial1输出
  }
  delay(1);//短暂延时,避免USB-COM不稳定
}

上位机软件

点击下载TC01测试工具

可视化显示

更多


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

个人工具
名字空间

变换
操作
导航
工具箱