《简单稳定地感应你》由会员分享,可在线阅读,更多相关《简单稳定地感应你(6页珍藏版)》请在金锄头文库上搜索。
1、玩转单片机 PCMCU056 无线电 2010.03豪华酒店的厕所之旅我们家族八辈贫农,生活在一个东北的小山村,虽然说没见过什么大场面,可是好山好水的,生活倒也不错。从小对电子制作的着迷也受到了环境的限制,很难去一趟城市,也没见过什么新奇玩意儿。话说,在我13岁的那年,老爸朋友的儿子结婚,在城里置办了酒席,请我们一家三口过去。人家的婚礼真是气派,就在铁力市中心最豪华的大酒店举行。酒店里金碧辉煌,地面光得照人,墙上贴着大大的“喜”字。年头久远,记不清更多的细节,唯有一件事让我印象深刻。菜上来了,有我最爱吃的大虾,配上大瓶的可乐,两眼一闭、大嘴一张,吃它个天翻地覆、死去活来。吃饱喝足,来到豪华酒店
2、的厕所门前。厕所里也金碧辉煌,地面也光得照人,墙上贴着大大的“男”字。没错,就是这里了。走进去看到一排小便池,小便池并不稀奇,之前也有见过,稀奇的是小便池上面贴着标语,上写“向前一小步,文明一大步”。更稀奇的是标语的下面有一个方形的金属板,金属板中间有一个黑色方形的玻璃。我一边小便一边研究着,我发现时不时地从黑色玻璃里面会亮起一个小红灯。我把身体前后移动,小红灯也跟着闪烁。当我转身离开的时候,突然听到“哗哗”简单稳定地感应你杜洋的冲水声。我马上回来看,小红灯又开始闪烁,我一走开它又冲水。难道黑色玻璃后面有人在看?我有点害羞,没敢再过去研究。来到洗手台,发现一排水龙头竟然都没有阀门开关,我拍了拍
3、出水口,没有反应。忽然发现出水口下面也有一个黑色玻璃,我把手伸过去,水就自然地流了出来。我确定黑玻璃的后面没有人,这应该是一种感应装置,可以感应到我的手。可它到底是如何感应的呢?洗完了手,正准备出门,又发现门旁边的干手机。干手机的底部也有一片黑玻璃,当我把手放在下面时,一股暖风出现了。这次豪华酒店的厕所之旅把我给震撼了,原来电器的开关可以这么智能,不用我们触碰到它,它就可以感应到我。我的脑子开始高速运转,想象着这项技术应用到自己家中的情景。妈妈洗菜可以不用开水龙头,家里的电灯不用出力按就可以开关,还有家里的电视机、电风扇、奶奶的收音机都可以放上这种感应开关。把它装在大门上,和门铃连接,只要有人
4、站在门口,门铃就会响。我的小伙伴来家里找我,一定会把他们吓一跳的。想着想着,忍不住笑出声来。从数字电路到单片机上了大学后,学校里有很多书店。在没有发现单片机之前,我一直在书店的电子技术专区里徘徊。那里有好多关于电子制作的书,都是我喜爱的。我最爱看的就是电子制作500例之类的书,里面的好多制作简单又实用。某天,我突然在书中发现了红外线感应干手机的制作实例。一下把我带回到那一次难忘经历豪华酒店的厕所之旅。我要实现我少年的梦想,我要实现这个制作。接下来的日子里,我就开始研究红外线感应干手机的原理和电路。原来,所谓的感应开关,只是利用了人眼看不到的红外线来感应物体。感应开关的核心元器件就是红外反射传感
5、器。红外反射传感器包括一个红外线发光二极管和一个红外线光敏二极管,它们两个都朝着一个方向,被封装在一个塑料外壳里。使用时,红外线发光二极管点亮,并发出一道人眼看不见的红外光。如果传感器的前方没有物体,那么这道红外光就以299792458m/s的速度(光速)消散在宇宙中。但如果传感器前方有不透明的物体时,红外光就会被反射回来,会照在旁边的红外线光敏二极管上。红外线光敏二极管接收到红外光后,其输出引脚的电阻值就会产生变化。通过感应水龙头和感应开关红外感应开关的创新制作简单稳定地感应你红外感应开关的创新制作2010.03 无线电 057判断这个阻值的变化,它就可以感应到前方的物体,进而控制电器开关了
6、。了解了原理,又看到了书中的电路原理图后,我却产生了新的疑惑。红外线发光二极管应该和普通二极管的驱动电路一样,用红外线光敏二极管加一个三极管放大接收信号来驱动继电器不就可以了吗?为什么还要加NE555和CD4069两个芯片,把简单的事情搞复杂了呢?看了后面的文章介绍才知道,原来这样做的目的是为了防止环境光的干扰。在我们生活的环境里,处处都暗藏着红外线。太阳是最常见的红外线发光体,还有火光、灯光、红外线遥控器和一些不可预知的光源。问题来了,身边这么多红外线光源,传感器里的红外线光敏二极管怎么知道哪些光是环境里的红外光,哪些光是它邻居发出来的红外光呢?于是天才的工程师想到了调制解调的办法。他们把红
7、外线发光二极管以某一频率进行调制,即让它以一定的频率闪烁。在红外线光敏二极管一端则设计一个电路,让接收端可以筛选出这一频率的红外光源。像收音机一样,传感器只要以自己的频率发射,再以自己的频率接收就可以过滤掉其他频率光源的干扰了。哈哈,看过原理之后,心中暗自生起了一团烈火。然后以70km/h的速度(坐车)奔向电子市场。备齐了元器件,照着原理图制作出了实物。不得不佩服我当时的焊接水平,用了一片小小的洞洞板,把电路制作得小巧、紧凑。不过接上电源之后,问题就来了,当我把手放在感应区域时,指示灯并没有亮。后来发现,这是发射频率和接收频率不匹配导致的,因为采用的是RC电路产生频率,简单地说就是靠电容的充放
8、电周期产生频率,所以频率很容易随温度变化而变化。电路的调试花了我许多时间,在没有示波器的帮助下,光靠反复修改电阻值和电容值的测试来达到成功是多么困难的事情呀!当同学把手放在感应区,指示灯亮起的那一刻,所有调试的困苦都转化为成就感,在同学们赞叹的话语中成几何性倍增了。像电影一样,故事到了高潮,接下来的每一步都是坠落。同学们只看到了光彩的一面,背地里它悄悄出现的问题,都成为我们私下独处时的伤痛。在一个阳光明媚的下午,强光照进室内,感应开关受强光的影响而处在不稳定的状态,它不断地自行开关,而且对反射物体没有反应。家里常用的电视机红外线遥控器也会让感应开关失灵。即使把它放在阴暗的角落也会出现一个讨厌的
9、问题,即当反射物体处在某一个特殊距离时,感应开关红外反射传感器用数字电路实现的红外感应开关电路原理图就会不断地开关,继电器的吸合很快,好像一台电报机。这是因为反射物体正好处在了感应区的临界点上,也就是“感应到”和“感应不到”的分界线上,物体微微靠近或离开就会产生开关状态的改变。没有人会希望自己家的电灯像闪电、水龙头像音乐喷泉吧。这些问题加在一起,让感应开关的应用很不理想,辛辛苦苦把家里所有的电灯开关都改装成感应的,不到一个月又被爸爸改回了传统开关。慢慢的,对感应开关的兴趣就被音控开关、延时开关的制作热情所取代。几星期后,我和红外线感应开关彻底分手了。从那之后的某一天,我开始学习单片机。几个月前
10、我对单片机内置的模数转换器(ADC)产生了兴趣,不断地探索它的妙用,DIS.MUSIC3炫彩音乐显示器就是利用ADC来采集音频信号的。突然有一天,我想,利用带有ADC功能的单片机可不可以取代传统的数字电路,而让红外线感应开关变得更稳定呢?在网上搜索了半天,没有找到基于单片机的红外线传感器的制作。这个情况对我来说亦好亦坏,好的是如果制作成功,这将又会是我的一项创新制作;坏的是我没有任何可以参考的资料,甚至都不能保证我的想法是否可行。我学习单片机的过程好像是一条正弦波,从基础开始学习,然后开发应用程序,再后来独立完成创新制作,到最后又回用数字电路实现的红外感应开关实物照片玩转单片机 PCMCU05
11、8 无线电 2010.03在面包板上完成的电路制作基于单片机的红外感应开关电路原理图红外感应开关控制电器的电路原理图到了基础技术问题的研究。接下来的日子里,我做得最多的事是研究红外线的知识。做了N多次实验,用不同的红外线发光源来做研究,找到它们的特性和区别。之后开始研究电路制作简单、同时又具备高稳定性的红外感应开关。研究到最后,我自己都惊讶了,原来硬件电路可以如此简单,简单到没有任何多余的元器件单片机、红外反射传感器、LED指示灯和电源。在之前的版本里,硬件电路上还需要加一条导线,但是后来我修改了程序算法,这条导线便光荣下岗了。是的,程序算法一种杀人于无形的利器。如果人类和动物的区别是人类具有
12、理性和智慧的话,那么单片机与数模电路的区别就是单片机具有程序控制。单片机程序精确地处理着时间和状态,软件的强大把硬件成本降到最低,并可以零成本复制。我热爱编程,它给了我无穷的乐趣和超乎想象的创新可能。如果我是即将毕业的大学生,我会把这个创新制作写成论文,让导师喜笑颜开;如果我是专注科普的无线电杂志的作者,我就只能用微小的篇章简单地说一说这款制作的基本原理了。但在此之前,先让我们趁着热情未减,亲手制作一下这款基于单片机的红外感应开关,体验它的精巧构思,检验它的抗干扰能力吧。我是在面包板上搭建的电路,电源采用的是3节5号电池所组成的4.5V直流电源。因为电路非常简单,我还特意为了面包板上的接插布局
13、而定义了IO接口。所以我们连导线都不需要,只要把单片机、红外反射传感器和LED指示灯插在指定的孔洞里就行了。值得注意的问题有:单片机需要使用带有ADC功能的STC12C2052AD系列;烧写程序时,选择使用内部RC振荡器;红外反射传感器没有特定的型号,我使用的是RPR220,你也可以使用其他型号的产品。在面包板搭建的实验电路上测试,有没有感觉到它的精简和稳定呢?把LED指示灯接在P1.7接口上时,它是无锁存的感应开关,即有反射物体时LED灯亮,物体离开就熄灭,适用于感应式水龙灯。把LED指示灯接在P1.6接口上时,它是锁存感应开关,即感应开关触发1次LED灯亮,2次触发时LED灯灭,适用于感应
14、式电灯开关。如果把LED指示灯改换成继电器,就可以用来控制其他电器了。电器可以是任何你想得到的东西,相信你和我一样,早就有过这样的梦想。现在是实现它的时候了。除了实用的开关改装计划,红外感应开关还可以把家居生活变成科幻电影。一张可以感应你的桌子会不会震惊四座呢?普通桌子的上表面嵌着一块磨砂玻璃板,当桌面空空的时候,桌子没有什么特别。可是当我们把手、杯子或报纸放在上面时,相应的位置就会发出光来。原来,玻璃下面安装了数百个LED灯和感应装置,只要桌子感应到有东西放在上面,就会让单片机控制对应位置的LED灯点亮。变换单片机2010.03 无线电 059最终数值 = 红外发光二极管点亮时ADC读出的数
15、值 - 红外发光二极管熄灭时ADC读出的数值的程序还可以玩出更多的花样呢。如果用我的这款红外感应开关是不是也可以实现这部科幻作品呢?在撰写本文的时候,我也同时在研究这项技术,希望可以用我们常用的单片机来实现,如果真能实现,我再另写文章与各位分享。那桌子、那感应式电灯都将成为你的作品、你的精心之作。关键问题与解决之道从年少时厕所里红外感应开关初体验,到传统电路制作的原理及问题,再到用单片机实现更稳定的感应开关设计,直至感应开关在电器开关和感应桌面上的应用。红外感应开关已经逐渐从厕所走向了客厅,从复杂走向了精简,从波动走向了稳定。那么有谁想知道单片机是怎么做到稳定感应的呢?其中的奥秘又是什么呢?这
16、里就把一些技术实现的基本原理与诸位分享。如果你有更好的方案和改进意见,或者你是这方面资深的专家,欢迎各路英豪与我交流。闲话少说,小弟这里献丑了哈!1. 如何去除环境光的干扰?与之前的调制解调的方式不同,在使用ADC功能之后,另一种解决方案会让测试更有效率。那就是使用双重检测方法。前提条件是,单片机可以控制红外发光二极管的开关。首先,要使用ADC功能读出接在ADC接口上电压的模拟量,数值从0到255(十进制)。红外光敏二极管接收的红外光线强时,ADC读出的数值就大,反之就小。我们要做的就是,控制红外发光二极管在发光时读一次ADC的数值,然后再让红外发光二极管熄灭,再读一次ADC的数值。我们先假设没有其他红外光源的干扰,当红外发光二极管熄灭时,红外光敏二极管应该检测不到光源,ADC读出的数值也应该为0;当红外发光二极管点亮,且没有反射物体时,ADC读出的值也应该很小,接近于为0;当有反射物体时,红外光敏二极管检测到光源,ADC读出的数值会变大。如果存在其他光源的干扰,那么当红外发光二极管熄灭时,也会读到较大的数值。双重检测