微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 简单稳定地感应你——红外感应开关的创新制作

简单稳定地感应你——红外感应开关的创新制作

时间:02-21 来源:互联网 点击:

2.如何解决临界点的感应波动问题?

微微向前一点就触发,微微向后一点就关断,这是临界点问题的困扰。问题的根源在于,触发的临界点和关断的临界点是同一个距离。只要在基于单片机系统中把这两个临界点分开,这个问题就可迎刃而解。我们知道,单片机需要处理的数据是“最终数值”,它是红外发光二极管开、关状态时ADC读出的数值之差。最终数值也是一个从0到255之间不断变化的变量。反射物理离传感器越近,“最终数值”就越大。如果我们在程序里设置,当“最终数值”大于某一值时(例如200)就触发开关,小于这一值时就关断开关,那么这样编程的效果就是单一临界点的不稳定开关。单片机既然都可以模仿不稳定的开关,自然也很容易创造稳定的开关了!只要写一下程序的设置就可以很轻松地让它变得稳定。双临界点的设计只需要两个数值的条件判断:当“最终数值”大于某一值时(例如200)就触发开关,当“最终数值”小于另一个数值时(例如150)就关断开关。这样一来,在150和200之间就会创建一块中间区域。当反射物理在这个区域前后移动时,开关仍保持其原来的状态,或判断、或触发。这种双临界点的设计,其实是给反射物体一个活动空间,对反射物体的稳定性要求降低了,系统状态就自然稳定了下来。在实际调试过程中,可以根据应用的需要修改双临界点的两个数值。比如做自动水龙头时,手的移动范围较大,所以应该留出较大的活动区域。如果是做自动寻迹小车的传感器,则可以用较小的活动区域,甚至改用单临界点来实现。双临界点的设计是有启发性的,你可以利用此设计来做更多的事情,或者用在其他传感器的稳定性设计之中。

3.如何增加感应的成功率和可靠性?

“最终数值”处理和双临界点设计都可以增加系统的稳定性。在多次数据采集中,出现几次失败和误差是很正常的事情。但如果这些误差左右了开关的状态,那么这种失败又由谁来负责呢?我写的文章错别字很多,杂志社的编辑老师都说我无药可救了。当你看到本文时,你要知道一件事,那就是已经有好几位编辑老师瞪大眼睛帮我改掉了文中的错别字。最后大家看到的才是精美而通顺的文章。在感谢编辑老师的同时,我也要为我们的红外感应开关配备几位“编辑老师”,给采集到的数据把关。一旦出现错误,就放弃当前的数据,重新采集,这种设计其实就是一种冗余。我在程序中设计了一段循环检测语句,连续20次检测和判断采集到的数据,如果20次中有1次误差就马上放弃当前的所有数据,重新检测。连续20次检测已经算是很稳定的了,当然你也可以为了更稳定而改用连续50次、100次的检测,但是系统的反应速度会变慢,灵敏度也会下降。灵敏度和稳定度之间的矛盾是刚性的,在实际测试中找到适合目标系统的检测次数就可以了。“最终数值”、双临界点和20次连续检测听上去好像是很复杂的事情,可是在程序里只是很简单的几条语句。设计的重点不在于程序的复杂性,而是整个系统的设计思路。下面列出一段关键程序部分与大家分享,这个简单的程序包含了上述的3种抗干扰设计。

4.如何增大感应距离?

经过实验证明,基于单片机的红外传感器的感应距离和单片机的ADC精度、双临界点数值、红外发光二极管的功率、红外光敏二极管的灵敏度,均和反射物理的反光效果有关,一般的感应距离不会超过20cm。不过,对于开关感应开关的设计已经足够了。要想增加感应距离,可以对以下几方面进行改进。只是,更远的感应距离反而会让系统产生许多
RAM_H=Read_ADC;//读出LED亮时ADC端口的值
RAM_L=Read_ADC;//读出LED灭时ADC端口的值
RAM_H=RAM_H-RAM_L;//取2次检测值之差,避开环境光干扰if(RAM_H>0x06){//开启时的距离(应该小于关闭时的距离)CON++;//计数加1
CON2=0;
if(CON>20){//连续20次检测,以避开干扰
CON=0;
LED_Y=0;//LED指示灯点亮
}
}
if(RAM_H0x03){//关闭时的距离
CON2++;CON=0;if(CON2>20){CON2=0;
LED_Y=1;//LED指示灯熄灭
}
}
“最终数值”、双临界点和20次连续检测的程序部分

不确定因素,效果反而不佳。如果在某些特殊情况还需要更远的传送距离,我们就要用新的软硬件方案来应对了。
☆提高ADC精度,例如将8位ADC换成10位或12位ADC。
☆将双临界点的数值设置得更小。
☆用LED驱动电路提高红外发光二极管的功率(即提高亮度)。
☆为红外光敏二极管一端加装信号放大电路。
☆尽量使用反光效果好的反射物体(如白纸、镜面)。

5.如何进一步提升抗干扰能力?

最后一个问题,是同频环境光的干扰。在我的实验中,还没有出现过这样的问题,它只存在于理论推理中。但这种干扰的可能性并不为0,所以有必须说明一下。所谓的同频干扰,就是假设红外感应开关的周围正好存在这么一个红外光源,它也按一定的频率点亮和熄灭,而这一频率正好和红外感应开关中红外发光二极管的亮、灭频率一致,且周期相同。这种巧合并不只是彩票头奖的幸运观众才能遇见的,当多个红外感应开关在较近的距离内同时使用时,问题就自然会出现。如果它们之间的距离不能改变,那就只有用跳频的方法来解决了。跳频技术在移动电话和无绳电话机上已经成为必备的功能,为了防止窃听或当某一频道被占用时,电话机会自动切换到别的频道,让通信更稳定、可靠。对于红外感应开关来说,跳频并没有那么复杂,只要在程序中不断改变红外发光二极管的亮、灭时间,用不同的频率去检测,其他干扰光源也以相同频率跳变的机会就少之又少了,再加上前面介绍的20次连续检测功能,再遇见干扰的可能性就几乎为0了。
增加以上5项功能,系统的稳定性达到了巅峰,而如此稳定的设计却丝毫没有改变硬件制作。仍然是那几种元器件,稳定与否全看程序的设计。单片机就是这么神奇,创造优良性能于无形之中,带你体验精简设计的内在之力。


更远距离的对射传感器方案

还有一种情况,是应用上的需要。如果使用红外感应开关来制作赛跑的电子终点线,将红外发射管和接收管分别安装在跑道的两端会是更好的解决方案。平时终点线上没有障碍物,发射的红外信号轻松地被接收。当有人通过终点线时,人的身体挡住了红外光的路线,接收端收不到信号而触发开关,完成比赛的计时。同样的设计还可以用作防盗报警器。这种对射式的传感器需要很远的传送距离,一般需要2~5m。如果是这种应用,就需要改变软硬件方案,38kHz调制红外线不是很好的解决方案。利用单片机产生38kHz的调制红外线信号,接收端使用具有集信号解调、放大和输出于一体的红外传感器TSOP1838。电路设计同样精简,而对射有效距离可以达到7~10m。相关的技术正在被我研究着,这里算是抛砖引玉,希望给正在研究此技术的朋友一点帮助。发挥你的才能,把这项技术运用到生活之中。制作自动干手机、感应水龙头、感应电灯开关、智能寻迹小车、防盗报警器、感应桌面、比赛计时器等。基于单片机的红外感应开关将成为你电子竞赛、产品设计、趣味DIY的必备佳品。这就是红外感应开关的创新制作,可以简单稳定地感应你。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top