元器件交易网-中发网全新升级平台
关注我们:
首页 > 行情中心 > 正文

设计简单稳定地红外感应开关的技术分析

  豪华酒店的厕所之旅

  我们家族八辈贫农,生活在一个东北的小山村,虽然说没见过什么大场面,可是好山好水的,生活到也不错。从小对电子制作的着迷也受到了环境的限制,很难去一趟城市,也没见过什么新奇玩艺儿。话说在我13 岁的那年,老爸的朋友的儿子结婚,在城里置办了酒席,请我们一家三口过去。人家的婚礼真是气派,就在铁力市中心最豪华的大酒店举行。酒店里金碧辉煌,地面光的照人,墙上贴着大大的“喜”字。年头久远,记不清更多的细节,唯有一件事让我印象深刻。菜上来了,有我最爱吃的大虾,配上大瓶的可乐,两眼一闭、大嘴一张,吃它个天翻地覆、死去活来。吃饱喝足,来到豪华酒店的厕所门前。厕所里金碧辉煌,地面光的照人,墙上贴着大大的“男”字。没错,就是这里了。走进去看到一排小便池,小便池并不稀奇,之前也有见过,稀奇的是小便池上面贴着一标语,上写“向前一小步,文明一大步”。更稀奇的是标语的下面有一个方形的金属板,金属板中间有一个黑色方形的玻璃。我一边小便一边研究着,我发现时不时的从黑色玻璃里面会亮起一个小红灯。我把身体前后移动,小红灯也跟着闪烁。当我转身离开的时候突然听到哗哗的冲水,我马上返回来看,小红灯又开始闪烁,我一走开它又冲水,难道黑色玻璃后面有人在看?我有点害羞,没敢再过去研究。来到洗手台,发现一排水龙头竟然都没有阀门开关,我拍了拍出水口,没有反应。忽然发现出水口下面也有一个黑色玻璃,我把手伸过去,水就自然地流了出来。我确定黑玻璃的后面没有人,这应该是一种感应装置,可以感应到我的手。可它到底是如何感应的呢?洗完了手,正准备出门,又发现门旁边的干手机。干手机的底部也有一片黑玻璃,当把手放在下面时,一股暖风出现。

  这次豪华酒店的厕所之旅把我给震撼了,原来电器的开关可以这么智能,不用我们触碰到它,它就可以感应到我。我的脑子开始高速运转,想象着这项技术应用到自己家中的情景。妈妈洗菜可以不用开水龙头,家里的电灯不用出力按就可以开关,还有家里的电视机、电风扇、奶奶的收音机都可以放上这种感应开关。把它装在大门上,和门铃连接,只要有人站在门口,门铃就会响。我的小伙伴来家里找我,一定会把他们吓一跳的。想着想着,忍不住笑出声来。

  感应水龙头和感应开关

  从数字电路到单片机

  上了大学,离书店不远。在没有发现单片机之前,我一直在书店的电子技术专区里徘徊。那里有好多关于电子制作的书,都是我喜爱的。我最爱看的就是电子制作500 例之类的书,里面的好多制作简单又实用。某天我突然在书中发现了红外线感应干手机的制作实例。一下把我带回到那一次难忘经历——豪华酒店的厕所之旅。我要实现我少年的梦想,我要实现这个制作。接下来的日子里,我就开始研究红外线感应干手机的原理和电路图。

  原来所谓的感应开关,只是利用了人眼看不到的红外线来感应物体的,感应开关的核心元器件就是红外反射传感器了。红外反射传感器包括一个红外线发光二极管和一个红外线光敏二极管,它们两个都朝着一个方向,被封装在一个塑料外壳里。使用的时候,红外线发光二极管点亮,发出一道人眼看不见的红外光。如果传感器的前方没有物体,那么这道红外光就以每秒299792458 米的速度(光速)消散在宇宙空间。但如果传感器前方有不透明的物体时,红外光就会被反射回来,照在自己也照在旁边的红外线光敏二极管身上。红外线光敏二极管收到红外光时,其输出引脚的电阻值就会产生变化。判断红外线光敏二极管的阻值变化,就可以感应前方物体,控制电器开关了。

  红外反射传感器

  了解了原理,又看到了书中的电路原理图,我就产生了新的疑惑。红外线发光二极管应该和普通二极管的驱动电路一样,红外线光敏二极管加一个三极管放大接收信号,使之可以驱动继电器不就可以了吗?为什么还要加NE555 和CD4069 两个芯片,把简单的事情搞复杂了呢?看了后面的文章介绍才知道,原来这样做的目前是为了防止环境光的干扰,在我们生活的环境里处处都暗藏着红外线。太阳是最常见的红外线发光体,还有火光、灯光、红外线遥控器和一些不可预知的光源。之所以阳光照在身上暖洋洋,也是因为红外光。问题来了,身边这么多红外线光源,传感器里的红外线光敏二极管怎么知道那些光是环境里的红外光,哪些光是它邻居发出来的红外光呢?于是天才的工程师想到了调制解调的办法。他们把红外线发光二极管以某一频率进行调制,即让它以一定的频率闪烁。在红外线光敏二极管一端则设计一个电路,让接收端可以筛选出这一频率的红外光源。因为环境里的红外光要么是没有频率的,要么就是有着自己固定的频率。像收音机一样,传感器只要以自己的频率发射,再以自己的频率接收就可以过滤其他频率光源的干扰了。

  哈哈,看过原理之后,心中暗自生起了一团烈火。然后以70公里每小时的速度(坐车)奔向电子市场。备齐了元器件,照着原理图制作出了实物。不得不佩服我当时的焊接水平,用了一片小小的洞洞板,把电路制作的小巧、紧凑。不过接上电源之后,问题就来了,当我把手放在感应区域的时候,指示灯并没有亮。后来发现是发射频率和接收频率不匹配导致的,因为采用的是RC电路产生频率,简单的说就是靠电容的充放电周期产生频率,所以产生的频率很容易因温度的变化而变化。电路的调试花了我许多时间,在没有示波器的帮助下,光靠反复修改电阻值和电容值的测试来达到成功是多么困难的事情呀!当同学把手放在感应区时,指示灯亮起的那一刻,所有调试的困苦都转化为成就感,在同学们赞叹的话语中成几何型倍增。

  像电影、像戏剧,故事到了高潮,接下来的每一步都是坠落。同学们只看到了光彩的一面,背地里它悄悄出现的问题,都成为我们私下独处时的伤痛。阳光明媚的下午,强光照进室内,感应开关受强光的影响而处在不稳定的状态,自行的开关,或是对反射物体没有反应。家里常用的电视机红外线遥控器也会让感应开关失灵。即使把它放在阴暗的角落也会出现一个讨厌的问题,当反射物体处在某一个特殊距离时,感应开关就会不断的开关,继电器的吸合很快,好像一台电报机。这是因为反射物体正好处在了感应区的临界点上,也就是“感应到”和“感应不到”的分界线上,物体微微靠近或离开就会产生开关状态的改变。没有人会喜欢电灯如闪电、水龙头像音乐喷泉。这些问题加在一起,让感应开关的应用很 理想,辛辛苦苦把家里所有的电灯开关都改装成感应的,不到一个月又被爸爸改回了传统开关。慢慢的,对感应开关的兴趣就被音控开关、延时开关的制作热情所取代。几星期后,我和红外线感应开关彻底分手了。

  从那之后的某一天,我开始学习单片机。几个月前我对单片机内置的模数转换器(ADC)产生了兴趣,不断地探索它的妙用,DIS.MUSIC3 炫彩音乐显示器就是利用ADC来采集音频信号的。突然有一天我在想,利用带有ADC 功能的单片机可不可以取代传统的数字电路,而让红外线感应开关变得更稳定呢?在网上搜索了半天,没有找到基于单片机的红外线传感器的制作。这个情行对我来说亦好亦坏,好的是如果制作成功,这将又会是我的一项创新制作;坏的是我没有任何可以参考的资料,甚至都不能保证我的想法是否可行。我学习单片机的过程好像是一条正弦波,从基础开始学习,然后开发应用程序,再后来独立完成创新制作,到最后又回到了基础技术问题的研究。接下来的日子里,我做的最多的事是研究红外线的知识,做了N 多次实验,用不同的红外线发光源来做研究,找到它们的特性和区别。之后开始研究电路制作简单、同时又具备高稳定性的红外感应开关。研究到最后,我自己都被惊讶了,原来硬件电路可以如此简单,简单到没有任何多余的元器件——单片机、红外反射传感器、LED 指示灯和电源。在之前的版本里硬件电路上还需要加一条导线,但是后来我修改的程序算法,让这条导线光荣下岗了。

  是的,程序算法——一种杀人于无形的利器。如果人类和动物的区别是人类具有理性和智慧的话,那么单片机与数模电路的区别就是单片机具有程序控制。单片机程序精确地处理着时间和状态,软件的强大把硬件成本降到最低,却又可以零成本复制。我热爱编程,它给了我无穷乐趣和超乎想象的创新可能。如果我是即将毕业的大学生,我会把这个创新制作写成论文,让导师喜笑颜开。如果我是专注科普的《无线电》杂志的作者,我就只能用微小的篇章简单地说一说这款制作的基本原理。但在此之前,先让我们趁着热情未减,亲手制作一下这款基于单片机的红外感应开关,体验它的精巧构思,检验它的抗干扰能力吧。

  我是在面包板上搭建的电路,电源采用的是3节5 号电池所组成的4.5V 直流电源。因为电路非常简单,我还特意为了面包板上的接插布局而定义了IO接口。所以我们连导线都不需要,只要把单片机、红外反射传感器和LED指示灯插在指定的孔洞里就行了。值得注意的问题有:单片机需要使用带有ADC功能的STC12C2052AD 系列;烧写程序时选择使用内部RC 振荡器;红外反射传感器没有特定的型号,我使用的是RPR220,你可以用其他型号的产品。

   在面包板搭建的实验电路上测试,有没有感觉到它的精简和稳定呢?把防盗报警指示灯接在P1.7 接口上时是无锁存的感应开关,即有反射物体时LED灯亮,物体离开就消灭,适用于感应式水龙灯。把LED 指示灯接在P1.6 接口上时是锁存感应开关,即感应开关触发一次LED 灯亮,下次触发时LED 灯灭,适用于感应式电灯开关。如果把LED 指示灯改换成单片机,就可以用来控制其他电器了。电器可以是任何你想得到的东西,相信你和我一样,早就有过这样的梦想。现在该是实现的时候了。

  红外感应开关控制电器的电路原理图

  除了实用的开关改装计划,红外感应开关还可以把家居生活变成科幻电影。一张可以感应你的桌子会不会持有震惊四座呢?普通的桌子的上表面嵌着一块磨沙玻璃板,当桌面空空的时候,桌子没有什么特别。可是当我们把手、杯子、报纸放在上面的时候,对应的桌面下方就会显出光来。原来玻璃的下面安装了数百个LED 灯和感应装置,只要桌子感应到有东西放在上面,就会让二极管控制对应位置的LED灯点亮。变换单片机的程序还可以玩出更多的花样呢。

  如果用我的这款红外感应开关是不是也可以实现这部科幻作品呢?!在撰写本文的时候,我也同时在研究这项技术,希望可以用我们常用的单片机来实现,如果真的有实现,我再另写文章与各位分享。那桌子,那感应式电灯都将成为你的作品,你的精心之作。

  感应式发光桌面效果展示

  关键问题与解决之道

  从年少的厕所里红外感应开关初体验,到传统电路制作的原理及问题,再到用单片机实现更稳定的感应开关设计,最后到感应开关在电器开关和感应桌面上的应用。红外感觉开关已经逐渐从厕所走向客厅,从复杂走向精简,从波动走向稳定。那么有谁想知道单片机是怎么做到稳定感应的呢?其中的奥秘又是什么呢?这里就把一些技术实现的基本原理与诸位分享。

  1. 如何去除环境光的干扰

  与之前的调制解调的方式不同,在使用继电器C 功能之后,另一种解决方案会让测试更有效率。那就是使用双重检测的方法,前提条件是单片机可以控制红外发光频率的开关。首先大家要制作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++; //计数加1

  CON2 = 0;

  if(CON > 20){ //连续20 次检测,以避开干扰

  CON = 0;

  LED_Y = 0; //LED 指示灯点亮

  }

  }

  if(RAM_H < 0x03){ //关闭时的距离

  CON2++;

  CON = 0;

  if(CON2 > 20){

  CON2 = 0;

  LED_Y = 1; //LED 指示灯熄灭

  }

  }

  “最终数值”、双临界点和20次连续检测的程序部分

  4. 如何增大感应距离

  经过我的实验证明,基于单片机的红外传感器的感应距离和单片机的ADC 精度、双临界点数值、红外发光二极管的功率、红外光敏二极管的灵敏度和反射物理的反光效果有关,一般的感应距离不会超过20CM。不过对于开关感应开关的设计已经是足够了。要想增加感应距离可以改进以下几方面。不过更远的感应距离反而会让系统产生许多不确定因素,效果反而不佳。如果在某些特殊情况还需要更远的传送距离,我们就要用新的软硬件方案来应对了,我在后文给出一个例子,可作为参考资料。

  提高ADC精度,例如将8位ADC换成10 位或12 位ADC。

  将双临界点的数值设置得更小。

  用 LED驱动电路提高红外发光二极管的功率(即提高亮度)。

  为红外光敏二极管一端加装信号放大电路。

  n尽量使用反光效果好的反射物体(如白纸、镜面)

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

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

  增加以上5 项功能,系统的稳定性达到了巅峰,而如此稳定的设计却丝毫没有改变硬件制作。仍然是那几种元器件,稳定与否全看程序的设计。单片机就是这么神奇,创造优良性能于无形之中,带你体验精简设计的内在之力。

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

  还有一种情况是应用上的需要,如果使用红外感应开关来制作赛跑的电子终点线,那些将红外发射管和接收管分别安装在跑道在两端会是更好的解决方案。平时终点线上没有障碍物,发射的红外信号轻松地被接收,当有人通过终点线时,人的身体挡住了红外光的路线,接收端收不到信号而触发开关,完成比赛的计时。同样的设计还可以用作AD器。这种对射式的传感器需要很远的传送距离,一般需要2~5米。如果是这种应用就需要改变软硬件方案,38K调制红外线不是很好的解决方案。利用单片机产生38KHz的调制红外线信号,接收端使用具有信号解调、放大、输出于一体的红外传感器TSOP1838。电路设计同样精简,而对射有效距离而可以达到7~10 米。相关的技术正在被我研究着,这里算是抛砖引玉,希望给正在研究此技术的朋友一点帮助。

  TSOP1838

  发挥你的才能,把这项技术运用到生活之中。制作自动干手机、感应水龙头、感应电灯开关、智能寻迹小车、防盗报警器、感应桌面、比赛计时器等等。基于单片机的红外感应开关将成为你电子竞赛、产品设计、趣味DIY的必备佳品。这就是红外感应开关的创新制作,可以简单稳定的感应你。

  • 微笑
  • 流汗
  • 难过
  • 羡慕
  • 愤怒
  • 流泪