红外传感器
红外传感系统是用红外线为介质的测量系统,按照功能可分成五类, 按探测机理可分成为光子探测器和热探测器。 红外传感技术已经在现代科技、国防和工农业等领域获得了广泛的应用
红外线对射管的驱动分为电平型和脉冲型两种驱动方式。由红外线对射管阵列组成分离型光电传感器。该传感器的创新点在于能够抵抗外界的强光干扰。太阳光中含有对红外线接收管产生干扰的红外线,该光线能够将红外线接收二极管导通,使系统产生误判,甚至导致整个系统瘫痪。本传感器的优点在于能够设置多点采集,对射管阵列的间距和阵列数量可根据需求选取。
红外线技术在测速系统中已经得到了广泛应用,许多产品已运用红外线技术能够实现车辆测速、探测等研究。红外线应用速度测量领域时,最难克服的是受强太阳光等多种含有红外线的光源干扰。外界光源的干扰成为红外线应用于野外的瓶颈。针对此问题,这里提出一种红外线测速传感器设计方案,该设计方案能够为多点测量即时速度和阶段加速度提供技术支持,可应用于公路测速和生产线下料的速度称量等工业生产中需要测量速度的环节。
红外技术已经众所周知,这项技术在现代科技、国防科技和工农业科技等领域得到了广泛的应用。红外传感系统是用红外线为介质的测量系统,按照功能能够分成五类:(1)辐射计,用于辐射和光谱测量;(2)搜索和跟踪系统,用于搜索和跟踪红外目标,确定其空间位置并对它的运动进行跟踪;(3)热成像系统,可产生整个目标红外辐射的分布图像;(4)红外测距和通信系统;(5)混合系统,是指以上各类系统中的两个或者多个的组合。
红外传感器根据探测机理可分成为:光子探测器(基于光电效应)和热探测器(基于热效应)。
原理
待测目标
根据待测目标的红外辐射特性可进行红外系统的设定。
大气衰减
待测目标的红外辐射通过地球大气层时,由于气体分子和各种气体以及各种溶胶粒的散射和吸收,将使得红外源发出的红外辐射发生衰减。
光学接收器
它接收目标的部分红外辐射并传输给红外传感器。相当于雷达天线,常用是物镜。
辐射调制器
对来自待测目标的辐射调制成交变的辐射光,提供目标方位信息,并可滤除大面积的干扰信号。又称调制盘和斩波器,它具有多种结构。
红外探测器
这是红外系统的核心。它是利用红外辐射与物质相互作用所呈现出来的物理效应探测红外辐射的传感器,多数情况下是利用这种相互作用所呈现出的电学效应。此类探测器可分为光子探测器和热敏感探测器两大类型。
探测器制冷器
由于某些探测器必须要在高温下工作,所以相应的系统必须有制冷设备。经过制冷,设备可以缩短响应时间,提高探测灵敏度。
信号处理系统
将探测的信号进行放大、滤波,并从这些信号中提取出信息。然后将此类信息转化成为所需要的格式,最后输送到控制设备或者显示器中。
显示设备
这是红外设备的终端设备。常用的显示器有示波器、显像管、红外感光材料、指示仪器和记录仪等。
依照上面的流程,红外系统就可以完成相应的物理量的测量。红外系统的核心是红外探测器,按照探测的机理的不同,可以分为热探测器和光子探测器两大类。下面以热探测器为例子来分析探测器的原理。
热探测器是利用辐射热效应,使探测元件接收到辐射能后引起温度升高,进而使探测器中依赖于温度的性能发生变化。检测其中某一性能的变化,便可探测出辐射。多数情况下是通过热电变化来探测辐射的。当元件接收辐射,引起非电量的物理变化时,可以通过适当的变换后测量相应的电量变化。
图上所示为欧姆龙公司生产的漫反射式和对射式光电传感器,这两种传感器主要用于事件检测和物体定位。图中的红灯和绿灯表示传感器的状态。
红外传感器已经在现代化的生产实践中发挥着它的巨大作用,随着探测设备和其他部分的技术的提高,红外传感器能够拥有更多的性能和更好的灵敏度。
类型
红外线传感器依动作可分为:
(1) 将红外线一部份变换为热,藉热取出电阻值变化及电动势等输出信号之热型。
(2) 利用半导体迁徙现象吸收能量差之光电效果及利用因PN 接合之光电动势效果的量子型。
热型的现象俗称为焦热效应,其中最具代表性者有测辐射热器 (THERMAL BOLOMETER),热电堆(THERMOPILE)及热电(PYROELECTRIC)元件。
热型的优点有:可常温动作下操作,波长依存性(波长不同感度有很大之变化者)并不存在,造价便宜;
缺点:感度低、响应慢(MS之谱)。
量子型 的优点:感度高、响应快速(ΜS 之谱);
缺点:必须冷却(液体氮气) 、有波长依存性、价格偏高;
红外线传感器特别是利用远红外线范围的感度做为人体检出用,红外线的波长比可见光长而比电波短。红外线让人觉得只由热的物体放射出来,可是事实上不是如此,凡是存在于自然界的物体,如人类、火、冰等等全部都会射出红外线,只是其波长因其物体的温度而有差异而已。人体的体温约为36~37°C,所放射出峰值为9~10微米的远红外线,另外加热至400~700°C的物体,可放射出峰值为3~5微米(不是MM)的中间红外线。
co2传感器在我们生活中运用得越来越广泛,比如在智能家居中运用co2传感器监测家里的co2浓度,在农业中用来监测蔬菜大棚的co2浓度,在交通运输中也运用得非常的广,几乎涉及我们生活中得每一个行业中,言归正传。下面我们简单的来谈一下四方科技的红外二氧化碳传感器,其实所有的二氧化碳传感器都差不多,就是参数的不一样,所有了解一款,其他的也就了解了。
四方红外二氧化碳CM106-05传感器
CON4CON5
序号引脚描述序号引脚描述
1+5V电源输入端(+5V 端)1+3.3V电源输出端(+3.3V/100mA)
2GND电源输入端(接地端)2RX串口接收端(+3.3V)
3A报警输出端(预留)3TX串口发送端(+3.3V)
4PWM脉宽调制4R/TRS485 控制端(预留)
5CA手动校准端(预留)
◆UART 通讯协议
1 协议概述
1) 本协议数据,均为 16 进制数据。如 “46”为十进制的[70];
2) [xx]为单字节数据(无符号,0-255);双字节数据高字节在前,低字节在后;
3) 波特率:9600, DataBits: 8, StopBits: 1, Parity: No。
2 串口通讯协议格式
上位机发送格式
起始符长度命令号数据 1……数据 n校验和
HEADLENCMDDATA1……DATAnCS
11HXXHXXHXXH……XXHXXH
起始符上位机发送固定为[11H],模块应答固定为[16H]
长度帧字节长度,=数据长度+1(包括 CMD+DATA)
命令号指令号
数据读取或者写入的数据,长度可变
校验和数据累加和,=256-[(HEAD+LEN+CMD+DATA) mod (256)]
3 串口协议命令号表
编号功能名称命令号功能描述
1读取 CO2 测量结果0x01
2CO2 浓度值调零校准0x03
3读取模块软件版本号0x1E
4 协议详细描述
4.1 读取 CO2 测量结果
发送:11 01 01 ED
应答:16 05 01 [DF1] [DF2] [DF3] [DF4] [CS]
功能:读取 CO2 测量结果(单位:ppm)
说明:CO2 测量值 = [DF1]*256 + [DF2]
应答实例:
应答:16 05 01 02 58 00 00 8B // 对应 CO2 浓度为 600ppm
4.2 CO2 浓度值调零校准
发送:11 03 03 [DF1] [DF2] [CS]
应答:16 01 03 E6
功能:CO2 浓度值调零校准
说明:
1、 调零目标值= [DF1]*256 + [DF2]。单位为 ppm,范围为(400 ~ 1500 ppm)
2、 进行 CO2 调零之前,请确认当前环境 CO2 值为调零目标值,稳定时间最少 2 分钟以上。
例如:当需要将模块调零到 600ppm 时,发送命令:11 03 03 02 58 8F
4.3 读取模块软件版本号
发送:11 01 1E D0
应答:16 0C 1E [DF1] …… [DF11] [CS]
功能:读取模块固件版本号
说明:
1、 [DF1]……[DF10] 表示详细版本号的 ASCII 码
2、[DF11] 预留。
例如:当模块版本号为 CM V0.0.20 时,应答数据如下:
应答:16 0C 1E 43 4D 20 56 30 2E 30 2E 32 30 00 97 //ASCII 码对应为 CM V0.0.20
◆PWM 输出
检测量程:400~5000ppm
正向脉宽:(PPM/5)+2ms
PWM 输出图示
其资料大概就是这些
下面我们谈一下在stm32程序中读取co2测量结果
在co2.c 中的代码为:
u8 Check_CO2[4] = {0x11,0x01,0x01,0xED};
void Check_co2(void)
{
UartSend(USART3,4,Check_CO2);
Delay_ms(5);
}
void AnalysisCO2(unsigned char* protocalData,unsigned int protocalLenth)
{
unsigned int i;
for(i = 0;i《protocalLenth+3;i++)
Debug (“%02x ”,protocalData [i]);
Debug (“\n”);
if(protocalData[0]==0x16 && protocalData [1] == 0x05 && protocalData[2] == 0x01)
{
environment.co2_standard =protocalData[3]*256 + protocalData[4]; //计算出二氧化碳的浓度
Debug (“shifang CO2=%d\n”,environment.co2_standard);
environment.environment_data[8]=protocalData[3];
environment.environment_data[9]=protocalData[4];
}
if(environment.ON_OFF_Flag==1) //开机情况下
{
CO2_Display(); //二氧化碳在LCD 屏上的显示 (程序略)
}
}