(完整版)红外感应原理知识

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RAM_H = Read_ADC; //读出LED亮时ADC端口的值
RAM_L = Read_ADC; //读出LED灭时ADC端口的值
程中可以根据应用的需要修改双临界点的两个数值。比如做自动手龙头,手的移动范围较大,所以应该
留出较大的活动区域。如果是做自动寻迹小车的传感器,则可以用源自文库小的活动区域,甚至改用单临界点
来实现。双临界点的设计是有启发性的,你可以利用此设计来做更多的事情,或者用在其他传感器的稳
定性设计之中。如下图所示:
3.如何增加感应的成功率和可靠性?
“最终数值”处理和双临界点设计都可以增加系统的稳定性,可以如果检测出错、或者出现误差,在多
次数据采集中出现几次失败和误差是很正常的事情,但如果这些误差左右了开关的状态,给采集到的数据把关。一旦出现错误就放弃当前的数据,重新采集,这种设计就是一种冗余。所以设计了一段循环检测语句,连续20次检测和判断采集到的数据,如果20次中有1次误差就马上放弃当前的所有数据,重新检测。连续20次检测已经算是很稳定的了,当然你也可以为了更稳定而改用连续50次、100次的检测,但是系统的反应速度会慢,灵敏度下降。灵敏度和稳定度之间的矛盾是刚性的,在实际测试中找到适合目标系统的检测次数就可以了。“最终数值”、双临界点和20次连续检测听上去好像是很复杂的事情,可是在程序里面却是很简单的几条语句。设计的重点不在于程序的复杂性,而是整个系统的设计思路。下面列出一段关键程序部分与大家分享,这个简单的程序包含了以上讲到的3种抗干扰设计。
不过,当强光照进室内,感应开关受强光的影响而处在不稳定的状态,自行的开关,或是对反射物体没有反应。家里常用的电视机红外线遥控器也会让感应开关失灵。即使把它放在阴暗的角落也会出现一个讨厌的问题,当反射物体处在某一个临界距离时,感应开关就会不断的开关,继电器的吸合很快,好像一台电报机。这是因为反射物体正好处在了感应区的临界点上,也就是“感应到”和“感应不到”的分界线上,物体微微靠近或离开就会产生开关状态的改变。所以一般现都会通过单片机对光干扰进行软件上的处理,而且电路比用硬件来做简单得多。具体电路如下所示:
红外感应原理知识
所谓的红外感应开关,只是利用了人眼看不到的红外线来感应物体的,感应开关的核心元器件就是红外反射传感器了。红外反射传感器包括一个红外线发光二极管和一个红外线光敏二极管,它们两个都朝着一个方向,被封装在一个塑料外壳里。使用的时候,红外线发光二极管点亮,发出一道人眼看不见的红外光。如果传感器的前方没有物体,那么这道红外光就以每秒299792458米的速度(光速)消散在宇宙空间。但如果传感器前方有不透明的物体时,红外光就会被反射回来,照在自己也照在旁边的红外线光敏二极管身上。红外线光敏二极管收到红外光时,其输出引脚的电阻值就会产生变化。判断红外线光敏二极管的阻值变化,就可以感应前方物体,控制电器开关了。红外线供应网
之差。最终数值也是一个从0到255之间不断变化的变量,反射物理离传感器越近,“最终数值”就越大。
如果我们在程序里设置当“最终数值”大于某一值时(例如200)就触发开关,小于这一值时就关断开
关。这样编程的效果就是单一临界点的不稳定开关,单片机既然都可以模仿不稳定的开关,自然也很容
易创造稳定的开关了!只要写一下程序的设置就可以很轻松的让它变得稳定。双临界点的设计只需要两
对于设计中存在的一些问题:
1.如何去除环境光的干扰?
与之前的硬件调制解调的方式不同,在使用ADC功能之后,另一种解决方案会让测试更有效率。那就是使用双重检测的方法,前提条件是单片机可以控制红外发光二极管的开关。首先大家要制作ADC功能可以读出接在ADC接口上电压的模拟量,数值从0到255(十进制)。红外光敏二极管接收的红外光线强时,ADC读出的数值就大,反之就小。我们要做的就是控制红外发光二极管在发光时读一次ADC的数值,然后再让红外发光二极管熄灭,再读一次ADC的数值。我们先假设没有其他红外光源的干扰,当红外发光二极管熄灭时,红外光敏二极管应该检测不到光源,ADC读出的数值也应该为0;当红外发光二极管点亮,且没有反射物理时,ADC读出的值也应该很小,接近于为0;当有反射物理时,红外光敏二极管检测到光源,ADC读出的数值会变大。如果存在其他光源的干扰,那么当红外发光二极管熄灭时也会读到较大的数值,双重检测读出的数值的差距越大,表示干扰光源越弱,反之则越强。我们通过这种双重检测就可以判断接收到的红外光是不是发射端发出来的了,两次检测的数值之差就是我们需要的最终数值。最终数值将参与下面的算法处理,也是我们判断、处理的关键数据。单片机需要控制红外发光二极管高速开关,以便更快的采集数据。
个数值的条件判断:当“最终数值”大于某一值时(例如200)就触发开关,当“最终数值”小于另一
个数值时(例如150)就关断开关。这样一来,在150和200之间就会创建一块中间区域。当反射物理
在这个区域前后移动时,开关仍保持其原来的状态,或判断、或触发。这种双临界点的设计,其实是给
反射物体一个活动空间,对反射物体的稳定性要求降低了,系统状态就自然稳定了下来。在实际调试过
下图主要原理把红外线发光二极管以某一频率进行调制,即让它以一定的频率闪烁。在红外线光敏二极管一端则设计一个电路,让接收端可以筛选出这一频率的红外光源。因为环境里的红外光要么是没有频率的,要么就是有着自己固定的频率。像收音机一样,传感器只要以自己的频率发射,再以自己的频率接收就可以过滤其他频率光源的干扰了,而且由于接收管胶体也对可见光的波段光源进行过滤,所以在室内使用的情况下是没有问题的。
最终数值=红外发光二极管点亮时ADC读出的数值-红外发光二极管熄灭时ADC读出的数值
2.如何解决临界点的感应波动问题?
微微向前一点就触发,微微向后一点就关断,这是临界点问题的困扰。问题的根源在于触发的临界点和
关断的临界点是同一个距离。只要在基于单片机系统中把这两个临界点分开,就可以解决这个问题了。
我们知道了,单片机需要处理的数据是“最终数值”,它是红外发光二极管开、关状态时ADC读出的数值
相关文档
最新文档