资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
红外感应原理知识所谓的红外感应开关,只是利用了人眼看不到的红外线来感应物体的,感应开关的核心元器件就是红 外反射传感器了。红外反射传感器包括一个红外线发光二极管和一个红外线光敏二极管,它们两个都朝着 一个方向,被封装在一个塑料外壳里。使用的时候,红外线发光二极管点亮,发出一道人眼看不见的红外 光。如果传感器的前方没有物体,那么这道红外光就以每秒299792458米的速度(光速)消散在宇宙空间。 但如果传感器前方有不透明的物体时,红外光就会被反射回来,照在自己也照在旁边的红外线光敏二极管 身上。红外线光敏二极管收到红外光时,其输出引脚的电阻值就会产生变化。判断红外线光敏二极管的阻 值变化,就可以感应前方物体,控制电器开关了。红外线供应网下图主要原理把红外线发光二极管以某一频率进行调制,即让它以一定的频率闪烁。在红外线光敏二 极管一端则设计一个电路,让接收端可以筛选出这一频率的红外光源。因为环境里的红外光要么是没有频 率的,要么就是有着自己固定的频率。像收音机一样,传感器只要以自己的频率发射,再以自己的频率接 收就可以过滤其他频率光源的干扰了,而且由于接收管胶体也对可见光的波段光源进行过滤,所以在室内 使用的情况下是没有问题的。不过,当强光照进室内,感应开关受强光的影响而处在不稳定的状态,自行的开关,或是对反射物体 没有反应。家里常用的电视机红外线遥控器也会让感应开关失灵。即使把它放在阴暗的角落也会出现一个 讨厌的问题,当反射物体处在某一个临界距离时,感应开关就会不断的开关,继电器的吸合很快,好像一 台电报机。这是因为反射物体正好处在了感应区的临界点上,也就是“感应到”和“感应不到”的分界线 上,物体微微靠近或离开就会产生开关状态的改变。所以一般现都会通过单片机对光干扰进行软件上的处 理,而且电路比用硬件来做简单得多。具体电路如下所示:RST rxDiPI ni Txom i ES I nJULZdiliiwazM irivvi 3 證岡ECiWPJ 4 BQ6NO9寸SV站 1 WCt P1 IM脚 IWCF * I tEI Pl 6 UI$O-ADC !3P1.1|iO3JiADC& 円4閱鼻DC4 PI 3/iUK:314 P1 2 朋门I il 9 Fl I.WC litlKOUl T i2 !Pi o-mDdKQLrraa M |P).7 PWMn -Q对于设计中存在的一些问题:1. 如何去除环境光的干扰?与之前的硬件调制解调的方式不同,在使用ADC功能之后,另一种解决方案会让测试更有效率。那 就是使用双重检测的方法,前提条件是单片机可以控制红外发光二极管的开关。首先大家要制作ADC功 能可以读出接在ADC接口上电压的模拟量,数值从0到255 (十进制)。红外光敏二极管接收的红外光线 强时,ADC读出的数值就大,反之就小。我们要做的就是控制红外发光二极管在发光时读一次ADC的数 值,然后再让红外发光二极管熄灭,再读一次ADC的数值。我们先假设没有其他红外光源的干扰,当红 外发光二极管熄灭时,红外光敏二极管应该检测不到光源,ADC读出的数值也应该为0;当红外发光二极 管点亮,且没有反射物理时,ADC读出的值也应该很小,接近于为0;当有反射物理时,红外光敏二极管 检测到光源,ADC读出的数值会变大。如果存在其他光源的干扰,那么当红外发光二极管熄灭时也会读到 较大的数值,双重检测读出的数值的差距越大,表示干扰光源越弱,反之则越强。我们通过这种双重检测 就可以判断接收到的红外光是不是发射端发出来的了,两次检测的数值之差就是我们需要的最终数值。最 终数值将参与下面的算法处理,也是我们判断、处理的关键数据。单片机需要控制红外发光二极管高速开 关,以便更快的采集数据。最终数值=红外发光二极管点亮时ADC读出的数值-红外发光二极管熄灭时ADC读出的数值2. 如何解决临界点的感应波动问题?微微向前一点就触发,微微向后一点就关断,这是临界点问题的困扰。问题的根源在于触发的临界点和 关断的临界点是同一个距离。只要在基于单片机系统中把这两个临界点分开,就可以解决这个问题了。 我们知道了,单片机需要处理的数据是“最终数值”它是红外发光二极管开、关状态时ADC读出的数值 之差。最终数值也是一个从0到255之间不断变化的变量,反射物理离传感器越近,“最终数值”就越大。 如果我们在程序里设置当“最终数值”大于某一值时(例如200)就触发开关,小于这一值时就关断开 关。这样编程的效果就是单一临界点的不稳定开关,单片机既然都可以模仿不稳定的开关,自然也很容 易创造稳定的开关了!只要写一下程序的设置就可以很轻松的让它变得稳定。双临界点的设计只需要两 个数值的条件判断:当“最终数值”大于某一值时(例如200)就触发开关,当“最终数值”小于另一 个数值时(例如150)就关断开关。这样一来,在150和200之间就会创建一块中间区域。当反射物理 在这个区域前后移动时,开关仍保持其原来的状态,或判断、或触发。这种双临界点的设计,其实是给 反射物体一个活动空间,对反射物体的稳定性要求降低了,系统状态就自然稳定了下来。在实际调试过 程中可以根据应用的需要修改双临界点的两个数值。比如做自动手龙头,手的移动范围较大,所以应该 留出较大的活动区域。如果是做自动寻迹小车的传感器,则可以用较小的活动区域,甚至改用单临界点 来实现。双临界点的设计是有启发性的,你可以利用此设计来做更多的事情,或者用在其他传感器的稳 定性设计之中。如下图所示:+ +3. 如何增加感应的成功率和可靠性?“最终数值”处理和双临界点设计都可以增加系统的稳定性,可以如果检测出错、或者出现误差,在多 次数据采集中出现几次失败和误差是很正常的事情,但如果这些误差左右了开关的状态,给采集到的数据 把关。一旦出现错误就放弃当前的数据,重新采集,这种设计就是一种冗余。所以设计了一段循环检测语 句,连续20次检测和判断采集到的数据,如果20次中有1次误差就马上放弃当前的所有数据,重新检测。 连续20次检测已经算是很稳定的了,当然你也可以为了更稳定而改用连续50次、100次的检测,但是系 统的反应速度会慢,灵敏度下降。灵敏度和稳定度之间的矛盾是刚性的,在实际测试中找到适合目标系统 的检测次数就可以了。“最终数值”、双临界点和20次连续检测听上去好像是很复杂的事情,可是在程序里 面却是很简单的几条语句。设计的重点不在于程序的复杂性,而是整个系统的设计思路。下面列出一段关 键程序部分与大家分享,这个简单的程序包含了以上讲到的3种抗干扰设计。RAM_H = Read_ADC; 读出 LED 亮时 ADC 端 口的值RAM_L = Read_ADC; /读出 LED 灭时 ADC 端 口的值RAM_H = RAM_H - RAM_L; /取 2次检测值之差,避开环境光干扰if(RAM_H 0x06) 开启时的距离(应该小于关闭时的距离)CON+; 计数加1CON2 = 0;if(CON 20) 连续20次检测,以避开干扰CON = 0;LED_Y = 0; /LED指示灯点亮if(RAM_H 20)CON2 = 0;LED_Y = 1; /LED指示灯熄灭“最终数值”、双临界点和20 次连续检测的程序部分4. 如何增大感应距离?基于单片机的红外传感器的感应距离和单片机的 ADC 精度、双临界点数值、红外发光二极管的功率 红外光敏二极管的灵敏度和反射物理的反光效果有关,一般的感应距离不会超过20CM。不过对于开关感 应开关的设计已经是足够了。要想增加感应距离可以改进以下几方面。不过更远的感应距离反而会让系统 产生许多不确定因素,效果反而不佳。具体的一些设计要求如下:1、提高ADC精度,例如将8位ADC换成10位或12位ADC。2、将双临界点的数值设置得更小。3、用LED驱动电路提高红外发光二极管的功率(即提高亮度),或是多个红外发射管来增加功率。4、为红外光敏二极管一端加装信号放大电路,或是增加透镜来增加感光面积来提高灵敏度。5、尽量使用反光效果好的反射物体(如白纸、镜面)5. 如何进一步提升搞干扰能力?最后一个问题是同频环境光的干扰,所谓的同频干扰,就是假设红外感应开关的周围正好存在这么一 个红外光源,它也按一定的频率点亮和熄灭,而已这一频率正好和红外感应开关中红外发光二极管的亮、 灭频率一致,且周期相同。这种巧合并不只是彩票头奖的幸运观众才能遇见的,当多个红外感应开关在较 近的距离内同时使用,问题就自然会出现。如果它们之间的距离不能改变,那就只有用跳频的方法来解决 了。跳频技术在移动电话和无绳电话机上已经成为必备的功能,为了防止窃听或当某一频道被占用时,电 话机会自动切换到别的频道,让通信更稳定、可靠。对于红外感应开关来说,跳频并没有那么复杂,只要 在程序中不断改变红外发光二极管的亮、灭时间,用不同的频率去检测,其他干扰光源也以相同频率跳变 的机会就少之又少了,再加上前面介绍的20次连续检测功能,再遇见干扰的可能性几乎为0了。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号