使人体红外传感器原理直接和红外发射器相连接,能不能向带有红外线接收器的arduino发送高低电平信息?

全部微信分类
当前位置:
Arduino传感器连载之距离测量篇
本网站文章均来自网络
搜索结果,只以信息传播为目的,不代表本站认同其观点和立场,版权为原作者所有,请与公众号原作者联系,亦切勿轻易相信文章内容。如有侵犯权益,或者不良信息。请立即联络我们做技术屏蔽! 邮箱:
长度即为两点之间的距离,也是七个国际单位制基本量之一。人与动物的区别就是人类会制造和使用工具,随着人类社会的发展,长度的测量方法和工具也在不断的发展和更新,凭借着特有的智慧,人类发明了很多精密的距离测量传感器,下面我们将详细讲解种常用的非接触式距离传感器,包括超声波和红外线,并使用控制器来实现距离的测量及补偿,制作出非接触式测距装置。1 超声波测距1.1 超声波测距简介超声波测距是一种传统而实用的非接触测量方法,和激光、涡流和无线电测距方法相比,具有不受外界光及电磁场等因素影响的优点,在比较恶劣的环境中也具有一定的适应能力,且结构简单,成本低,易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,因此在工业控制、建筑测量、机器人定位方面有广泛的应用。超声波是指频率超过 的声波,它属于机械波,传播的是机械能量,仅能在介质中传播。与它相关的三个主要物理量是:频率f,声速c,波长λ。超声波测距的原理如图所示:利用超声波在空气中的传播速度为已知,测量声波在发射之后遇到障碍物反射回来的时间,根据发射和接收之间的时间差来计算出发射点到障碍物的实际距离。从超声波发射器发出的超声波假设传播介质为气体,经气体介质的传播,遇到障碍物之后反射的超声波被超声波接收器所接收。将超声波发射与接收之间的时间与气体介质中的声速相乘,就是声波传输的距离,声波传输距离的一半便是所测距离。 图超声波测距示意图超声波具有以下四个重要的应用特性:()超声波具有良好的方向性。以传感器轴线为中心的圆锥范围内定义波束角,频率越高,波束角越小,方向性越强,从而可以传输的更远。()反射性,是指在超声波传播过程中,遇到两种介质形成的界面,若介质间具有足够的特性阻抗差(),而界面又大于超声波的波长,就会发生反射。()声衰减,是指在超声波传播过程中,由于晶体结构的介面、分子间摩擦力等因素,造成能量分散、声能转变成热能而消失的现象。这个特性是影响超声波测量精度的一个关键因素,由超声波测量原理可知,超声波换能器需要接收发射微波的回波信号,衰减不但阻碍了测量量程的扩大,而且对接受电路设计的要求提高。()超声波不可听,避免了噪声,并且频率较高,因此不会对身体产生共振等危害。1.2 SR-04的简介与编程HC-SR04超声波测距模块可提供的非接触式距离感测功能,测距精度可达高到;模块包括超声波发射器、接收器与控制电路。实物图如图所示。 图超声波传感器HC-SR04超声波测距模块的时序图如图所示,基本工作过程如下所示:(1)采用口触发测距,给最少的高电平信号;(2)模块自动发送个的方波,自动检测是否有信号返回;(3)有信号返回,通过口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。超声波测距模块测量得到的距离高电平时间声速。 图超声波传感器时序图使用与超声波传感器实现测距的步骤如下:()数字端口给的引脚至少μ的高电平信号,触发模块测距功能;()模块被触发后,便会自动发送个的超声波脉冲,并自动检测是否有信号返回。()如有信号返回,引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时,我们能使用函数获取到测距的结果,并计算出距被测物的实际距离。使用与超声波传感器实现测距的典型代码如代码清单所示。代码清单:超声波传感器典型代码digitalWrite(TrigPin, LOW);delayMicroseconds(2);digitalWrite(TrigPin, HIGH);//发送μ的高电平触发信号delayMicroseconds(10);digitalWrite(TrigPin, LOW);distance = pulseIn(EchoPin, HIGH)*340/60/2; // 检测脉冲宽度即为超声波往返时间1.3 简易超声波测距仪1.3.1 硬件连接首先,将超声波模块的、、、分别连接到控制板的、、数字端口和上。超声波测距系统硬件连接示意图如图所示。 图简易超声波测距系统硬件连接示意图1.3.2 程序设计程序设计的基本思路:首先,控制器输出微秒的触发信号,然后,使用脉冲宽度测量函数测量传感器输出的时间信号,乘以超声波传播速度计算得到测量的距离并通过串口输出。简易超声波传感器实现测距代码如代码清单所示。代码清单:简易超声波测距代码清单const int TrigPin = 2; const int EchoPin = 3; // 设定SR04连接的Arduino引脚 void setup() {
// 初始化串口通信及连接SR04的引脚
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
pinMode(EchoPin, INPUT);
Serial.println(&Ultrasonic sensor:&);} void loop() {
// 产生一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 检测脉冲宽度,并计算出距离
distance = pulseIn(EchoPin, HIGH) / 58.00;
Serial.print(distance);
Serial.print(&cm&);
Serial.println();
delay(1000); }1.3.3 实验演示实际的实验硬件连接图如图 5所示,使用RobotBase(奥松机器人)出品的RB URF02超声波传感器模块和OCROBOT 出品的Arduino MEGA 2560兼容控制器来搭建实验平台,串口接收到的测距数据如图6 所示。 图实验硬件连接图 图串口接收的测距数据1.4 具有温度补偿的超声波测距仪1.4.1 超声波测距误差分析  根据超声波测距公式,式中为测量的距离长度;为超声波在空气中的传播速度;为测量距离传播的时间差为发射时间到接收时间之差的一半。可知,超声波测距的误差是由超声波在空气中传播速度的误差和测量距离传播的时间误差引起的。1、时间误差在保证超声波传播速度准确的前提下,测量距离的误差就来源于超声波传播时间的误差,只要误差达到微秒级的时候,就能保证测距误差小于m。而传播时间的误差主要来源于单片机对超声波发射与接收之间的定时误差或集成式超声波传感器输出的脉冲宽度的误差和单片机对脉冲宽度的测量误差,由于本教程采用的是成品超声波传感器,且控制器的脉冲宽度测量函数pulseIn()的测量单位为微秒,其测量精度约为微秒。这将会导致超声波传播时间的测量存在一定的误差,所以此处暂且不讨论时间误差的修正方法。2、超声波传播速度误差超声波的传播速度受空气的密度所影响,空气的密度越高,则超声波的传播速度就越快,而空气的密度又与温度有着密切的关系,对于超声波测距精度有较高的要求时,就有必要把超声波在空气中传播时的环境温度也考虑进去。例如,当温度℃时超声波速度是,当温度30℃时超声波速度是,这℃温度变化引起的超声波速度变化为。当超声波在℃的环境下,以℃的声速来计算100m距离所引起的测量误差将达到,当测量的时候误差将达到。1.4.2 硬件连接首先,将超声波模块的、、、分别连接到控制板的、、数字端口和上。然后,将DS18B20温度传感器、、分别连接至Arduino Uno控制板的、和数字端口上,且在与之间连接一个4.7kΩ的上拉电阻。超声波测距系统硬件连接示意图如图所示。 图具有温度补偿的超声波测距仪硬件连接图1.4.3 程序设计程序设计的基本思路:首先,控制器通过单总线从温度传感器获取当前的空气温度并串口输出,然后输出微秒的触发信号,使用脉冲宽度测量函数测量传感器输出的时间信号,乘以经过温度补偿的超声波传播速度计算得到测量的距离并通过串口输出。具有温度补偿的超声波传感器实现测距代码如代码清单所示。代码清单:具有温度补偿的超声波测距代码清单#include &OneWire.h&#include &DallasTemperature.h&// 设定连接的引脚const int TrigPin = 2; const int EchoPin = 3;
float temperature_
#define ONE_WIRE_BUS 4OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire);void setup() {
// 初始化串口通信及连接的引脚
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
pinMode(EchoPin, INPUT);
sensors.begin();}void loop() {
// 产生一个的高脉冲去触发
sensors.requestTemperatures();
temperature_value = sensors.getTempCByIndex(0);
Serial.print(&temperature = &);
Serial.print(temperature_value);
Serial.print(&C &);
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 检测脉冲宽度,并计算出距离
distance = pulseIn(EchoPin, HIGH) *(331.4+0.6*temperature_value)/ 2;
Serial.print(&distance = &);
Serial.print(distance);
Serial.print(&cm&);
Serial.println();
delay(1000);}1.4.4 实验演示实际的实验硬件连接图如图 7所示,使用RobotBase(奥松机器人)出品的RB URF02超声波传感器模块、传感器模块和出品的兼容控制器来搭建实验平台,串口接收到的温度数据和距离数据如图8 所示。 图实验硬件连接图 图串口接收的测距数据2 红外测距传感器2.1 红外测距简介红外线,又称红外光,是一种人眼看不见的光线,但实际上它和其他任何光线一样,也是一种客观存在的物质。任何物体,只要它的湿度高于绝对零度,就有红外线向周围空间辐射。红外线在通过云雾等充满悬浮离子的物质时不易发生散射,有较强的穿透能力,还具有抗干扰能力强、易于产生、对环境影响小、不会干扰临近的无线电设备的特点,同时,红外光具有反射、折射、散射、干涉、吸收等特性,因而被广泛应用。目前,红外发射器件(红外发光二极管)发出的是峰值波长~之间的近红外光,红外接收器件(光敏二极管、光敏三极管)的受光峰值波长为~之间, 恰好与红外发光二极管的光峰值波长相匹配。由于在自然界中,不存在黑体、镜体和灰体。利用红外线反射的特性,使用红外发射器件和红外接收器件便可以实现红外测距。具有结构简单,易于小型化,成本低,无污染,抗干扰能力强,可靠性高。注:能全部吸收投射到它表面的红外辐射的物体称为黑体;能全部反射的物体称为镜体;能部分反射、部分吸收的物体称为灰体。2.2 GP2D12传感器的使用GP2D12 是公司一种新型的红外测距传感器,工作电压为~,输出为模拟电压,探测距离为~,最大允许角度>°,刷新频率为(),模拟输出噪声<,标准电流消耗为~。GP2D12传感器测距的原理如图所示,从红外线发射器以一定的角度α发射出高频调制的红外线,当红外线遇到障碍物时候便反射出反射光线,反射光线经过滤镜折射到焦距为f的检测器上,通过在检测器上的折射线与中心线之间的偏移值和红外发射器与检测器之间的距离,以及红外线发射的角度α,从而计算出障碍物距离传感器的距离。 图9 GP2D12红外测距示意图从手册可知,的输出电压为~,对应~距离,输出电压与距离的关系成反比,且为非线性关系,如图所示。其测量关键点的距离与电压的关系如表所示。 图距离与电压的关系曲线根据上图关系曲线可以看出,距离为时传感器输出电压,距离为时传感器输出电压,可以通过该曲线拟合得出传感器输出电压值与距离值之间的数学关系式,但是这个关系式里的距离是参考距离值,实际距离值为参考距离值。另外,基于单片机的控制器具有位模拟转换器,数字量的范围是至,对应的电压范围是至,每一位数据代表,于是读取的有效数据应该由至。所以,最终可以推导出实际距离与采样数据之间的关系式为:实际距离采样数据。2.3 基于的红外测距系统2.3.1 硬件连接将红外传感器的、、分别接至控制板上的、、模拟端口。最好在与之间并联的电解电容,以稳定的供电电压,从而使输出电压更加稳定。部分的硬件连接如图所示。 图红外测距系统硬件连接图2.3.2 程序设计程序设计的基本思路:首先,控制器通过模拟输入端口获取传感器输出的模拟电压,然后通过拟合公式计算出对应的厘米级的距离,并通过串口输出。基于GP2D12的红外测距系统代码如代码清单所示。代码清单:基于GP2D12的红外测距系统代码清单void setup(){
Serial.begin(9600);}void loop(){
i=analogRead(A0);
val=2547.8/((float)i*0.49-10.41)-0.42;
Serial.println(val,2);}2.3.3 实验演示实际的实验硬件连接图如图 所示,使用(奥松机器人)出品的传感器支架、传感器模块和出品的兼容控制器来搭建实验平台,串口接收到的测距数据如图所示。 图实验硬件连接图 图串口接收的测距数据 【关于开源杂志】与时代接轨,做开源期刊先锋,引领一个风尚,这是我们的宗旨。《开源杂志》必须为开源活动的参与者、(官网)关注者服务,应市场之变,循极客之路,力在熏陶一批多能、广识、前瞻的厚积薄发之士,继以小成,而后大同。
本网站文章均来自网络
搜索结果,只以信息传播为目的,不代表本站认同其观点和立场,版权为原作者所有,请与公众号原作者联系,亦切勿轻易相信文章内容。如有侵犯权益,或者不良信息。请立即联络我们做技术屏蔽! 邮箱:
上一篇:第一篇
下一篇:最后一篇
友情链接:  近红外(760~3000nm);中红外(rim);远红外(nm)。
  自然界中任何有温度的物体都会辐射红外线,只不过辐射的红外线波长不同而已。根据实验表明,人体辐射的红外线(能量)波长主要集中在约10000nm左右。根据人体红外线波长的这个特性,如果用一种探测装置,能够探测到人体辐射的红外线而去除不需要的其他光波。
  就能实现检测人体活动信息的目的。因此,就出现了探测人体红外线的产品。人体红外线传感器是根据热释电原理制作而成的。
  二、热释电原理    人体红外感应传感器,是利用热释电效应原理制成的一种传感产品,什么是热释电效应呢?就是因温度的变化而产生电荷的一种现象。
  为清楚说明热释电效也现像。以图示意说明。
  图l是温度变化曲线示意图:图2是温度变化引起传感器表面电荷变化状态曲线示意图;图3是由传感器表面电荷变化引起的变化输出曲线示意图。
  图l开始的阶段(T),在没有红外线照射下,热释电红外线传感器的温度没有变化,传感器表面的电荷处于中和状态,正负电子对等(A),此时,传感器没有输出(0)。图l第二阶段(T+△T),有温度变化时。在人体红外线的照射下,热释电红外线传感器的温度如果上升了△T,那么传感器表面的电荷就如图2(B)所示的那样发生相应的变化。如果温度变化为△T,其对应的电荷变化就产生△V的变化,因此,传感器输出△V。随着时间的延长,传感器表面就会重新吸附空气中的离子并相互抵消由此而达到如图2c所示的中和状态。此时,传感器又恢复到没有输出(O)。如图3所示。
  当温度下降时,温度又回到原来的状态(T),其自由极化状态如图2D所示。由于温度的下降变化件(相对而言)过程与温度上升变化相反,所以,传感器表而的电荷变化与上升时变化过程刚好相反,是个反过程。
  因此,传感器的输出信号就是一△V,如图3所示。同理,随着时间的延长,传感器的表面又会重新吸附空气中的离子,而使传感器的输出信号再次为零。
  传感器对人体活动信息的感应全过程输出信号如图3所示。从传感器输出图中不难看出,传感器对人体活动的一个动作所输出的信号是一个完整的波形。在实验中。如果用放大器把该信号放大,再用示波器观察就是一个正脉冲和一个负脉冲。也就是说,传感器输出感应到的一个移动信号近似于一个完整的l 脉冲信号。
  三、红外线传感器    在热释电型传感器中,以前都是使用一元的传感器,由于一元传感器受杂散光等因素的影响比较大,应用效果比较差。所以,现在普遍使用双元传感单元,这种传感器有如下优点:
  1.具有灵敏度高的特点。
  2.两个单元器件反向连接。因此,同时输入的红外线会相互抵消,没有输出。由此增加了对外部杂散光、环境温度变化以及外部震动影响的稳定性(见图5)。
  由于热释电型红外线传感器的极高,非常容易引入。
  因此就需要对传感器进行电磁屏蔽处理,因此采用金属封装,外壳接地(图4、图5的③脚)。这样就可以达到屏蔽杂波噪声的目的。
  在自然界中,所有物体辐射的热能都与自身的温度成正比。物体的温度越高其辐射热能的峰值波长就越短。温度在36~37℃的人体辐射出来的热能峰值约在900~1000nm的红外线,因此,完全可以用热释电型红外线传感器检测到人体的有或无。
  为了在监测人体有或无的过程中避免太阳光和照明灯光等光线的影响,通常对热释电型红外线传感器表面附加上滤光片,同时,由于人体的移动比较缓慢,因此还需要带有高效率,能够聚焦的菲涅尔透镜等配件,才能满足实际的使用需要。
&&&&&往下看有更多相关资料
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
匿名 发表于 数据有错误
(0) 冯文平 发表于 很好
(0) winnerlyn 发表于 挺好
(0) macliu88 发表于 不错!
(0)数据有错误
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670& & &&)mBlock & Arduino(11)认识红外线接收与发射 - 简书
mBlock & Arduino(11)认识红外线接收与发射
我们平常接触红外线的应用,像是电视机、冷气机的遥控器就是个红外线发射器,而电视机、冷气机上则有红外线接收器。红外线接收器与发射器人类可见光约为 390 到 700 nm(奈米),其中可见的红光波长约为 620 至 750 nm 左右,而波长超过 760 nm 的光,人类无法感知,称为红外光,一般我们还会听到有近红外光、远红外光等分类,这在。电视机、冷气机等一般常使用 940 nm 波长的红外光,以避免太阳光、室内光源等发出的红外光干扰,其他还有 850 nm、860 nm 等其他波长,最好能让接收器与发射器规格一致,以免造成误判。
上图左侧是红外线接收器,我手边这只三个接脚由左至右分别是讯号、GND 与电源,有的接收器 GND 与电源线会相反,使用时要确认一下。由于生活周遭物品也会不定时地散发红外光,红外线接收器设计为只对特定频率有反应,常见使用的是 38k Hz;红外线发射器就是个 LED,可发出特定波长的红外线,在 Arduino,可以使用tone函式(是之前谈蜂呜器时有提过)指定以特定频率(像是 38k Hz)发射红外线。使用 mBlock 测试红外线接收器如果想要简单地体验、测试一下红外线接收器,可以如下衔接电路:
如果使用 mBlock 2.1 的话,可以如下撰写程式:
如上图撰写程式的话,在还没按上遥控器时,从红外线接收器多半就会收到一堆 1 的讯号,遥控器实际上是有特定编码地发射红外线讯号,你可以在运行程式之后,拿起家里的电视遥控器对着接收器发射,在接收器收到 0 的讯号时,猫咪会以“收到遥控器讯号”的提示文字表示。使用 IRremote 测试红外线接收器如果想要用红外线接收器解码遥控器的红外线指令,可以使用程式库搭配 Arduino IDE 来快速地体验一下,可以到 IRremote 的 Github 按下“Download ZIP”,会下载一个 Arduino-IRremote-master.zip 档案,解开后将其中目录更名为 Arduino-IRremote,并将整个目录置于 Arduino IDE 安装目录的 libraries 之中:
接着开启 Arduino IDE,就可以在“档案/范例”中,看到 IRremote 相关范例:
如果想测试一下电视遥控器的指令解码,可以开启“IRrecvDemo”范例,电路如先前看到的图衔接就可以了,这个范例程式会从 D11 接收红外线讯号并解码,直接将程式上传至 Arduino,并执行“工具/序列埠监控视窗”,然后按下电视遥控器的电源键,你应该可以看到对应的解码讯息出现:
使用 IRremote 测试红外线发射器如果使用 mBlock 2.1,那么“播放脚位…”这方块,可以直接指定频率,驱动红外线发射器发出红外线:
若要能发出如遥控器的各种指令红外光,这在 mBlock 中自行以积木建构会是个大工程,在之前的 IRremote 范例中,可以看到“IRsendDemo”范例,可以使用这个范例来测试红外线发射:
按照注解来看,这个范例可以发出 Sony 电视机的电源红外线指令,至于那个Serial.read的if判断,是要看看有无从“序列埠监控视窗”收到输入,也就是你可在先前看到的“序列埠监控视窗”中输入文字然后按下“传送”,这样if条件就会成立,然后按照程式流程发出电源红外线指令,如果不想这么麻烦,就将if的部份注解掉,这样就会不断地发出电源红外线指令了。电路的部份,只需要如下衔接就可以了,要注意的是,由于 IRremote 的限制,你只能用 D3 脚位来送出讯号:
如果需要测试一下是不是正确地发出红外线指令,你需要另一块 Arduino 板子,如先前在测试接收器的电路的方式衔接,然后上传“IRrecvDemo”范例,那么在“序列埠监控视窗”中,你就可以看到以下的解码讯息:
感谢CodeData用户:caterpillar的贡献 著作权归作者所有整理:宁波家电物联网云平台,中科极动云
誰說我是程序媛?明明是一朵可愛小小雲!
你正在用哪个解决方案?nb-iot/zigbee/wifi/lora,和小小云一起交流吧!?(?????????)?亚马逊意外错误报歉,由于程序执行时,遇到意外错误,您刚刚操作没有执行成功,请稍后重试。或将此错误报告给我们的客服中心:推荐您,确认您的操作无误后,再继续其他操作。您可以通过亚马逊,获得更多的帮助。

我要回帖

更多关于 人体红外传感器原理 的文章

 

随机推荐