微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 用单片机做智能台灯

用单片机做智能台灯

时间:10-02 整理:3721RD 点击:

摘要:设计制作了一种智能台灯,主要是以BISS0001和单片机组成的红外传感控制电路。其特点是在有人时且外界光强较弱时能自动开灯,无人时关灯,节约能源;且能纠正坐姿,防止近视。

关键词:节能;纠正坐姿;BISS0001                  

一、引言:台灯已是千家万户的必需生活用品,经常由于忘记关灯而造成巨大的能源浪费。当夜晚来临时,人们又摸黑去开灯,非常不方便。在这里设计了以人体红外辐射(波长为9.5um)传感控制电路。当人体在台灯的范围内且环境光强较弱时,自动感应开灯;当人体太靠近桌面时,台灯自动感应,警告纠正坐姿,若在一定时间内未离开桌面则自动熄灭。当人离开时则自动关灯,达到节约能源的目的。

二、系统组成及电路设计:

1.        系统组成部分


图一 系统结构图

本系统组成如图一所示,主要由三部分组成:

1)       传感器及信号处理部分:检测人体辐射红外信号及光强信号经过处理后变成可处理的数字信号

2)       以80C51组成的中央处理单元:处理信号并发出控制命令

3)       提醒电路及灯光控制电路 :给出提醒信号并根据80C51给出的命令控制灯光

整个系统是以80C51控制下工作的。其工作过程为:当环境光比较强时,光敏电阻阻值比较小,信号处理电路检测到低电平信号,禁止热释电红外传感器工作,省去了80C51处理过程。当环境光比较弱时,光敏电阻阻值变大,信号处理电路接收到高电平,从而启动热释电红外传感器工作。热释电红外传感器1探测比较远的距离,当人体进入到传感器1的控测范围内且光强较弱时,信号检测电路处理信号,并向单片机发送一个中断,80C51启动灯光控制电路,使灯慢慢变亮。当环境光比校弱时,且人体过于靠近桌面,热释电红外传感器2检测到信号,同时了在热释电红外传感器1的控测范围内,信号处理电路同时向80C51发送信号,80C51处理信号根据优先级顺序,屏蔽掉热释电红外传感器1的信号,启动延时电路,发出警报使人离开,若在设定的时间内未离开桌面,则启动灯光控制电路,使灯慢慢熄灭。当人体离开热释电红外传感器2的控测范围且在热释电红外传感器1的控测范围内时,灯光又慢慢变亮。

2.        电路设计部分



图二           传感器组成的信号检测及处理部分

图二是由红热释电红外传感器、光敏电阻、BISS0001组成的信号检测及处理电路。红热释电红外传感器只对波长为10μm(人体辐射红外线波长)左右的红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。 BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。当外界光强较强时,光敏电阻阻值很小,BISS0001检测到低电平,从而封锁14脚,禁止传感器infare1的信号。当外界光强较弱时,光敏电阻阻值很大,BISS0001检测到低电平,开启14脚;infare1检测到人体信号时,产生微弱的信号输出,经R5、R1005、R4、C1、C6、C7组成的信号放大滤波电路。R1000、R1001、C1000和C1001组成的延时电路。信号经处理后从2脚输出。


图三          单片机控制电路

图三是由单片机组成的报警及灯光控制电路。当外部无任何中断时,80C51控制74LS138的使能控制端,使后面电路不工作。当有中断一产生时,80C51启动74LS138,向P0脚低4位发送信号,控制灯慢慢亮。当中断1和中断0同时产生时,80C51屏蔽掉中断1,启动74LS138向P0脚低四位发送数据,使灯光慢慢变暗。这里采用74LS138控制DC832可以节省80C51的管脚,有利于扩展,以便于控制多盏灯。由于采有DC0832可以有效地使灯实现阶梯形的变化。

3.  程序框图:


中断1                                                             中断0


图四           程序框图

程序框图如图四所示,程序开始后,对程序进行初始化。向P0脚写入低电平,开启所有中断,启动计数器。当中断1来时,进入中断1,设置R0为0,调用延时程序TIME0(延时10ms),判断R0是否等于7,若不是,则加1,继续发送数据进入循环,直至R=7,即实现的是灯慢慢变亮的一个过程。当中断0和中断1同时产生时,根据优先级,屏蔽掉中断1,开启中断0。调用延时程序TIME0(延时1分钟),查询中断0控制位;防止人体不小心到达热释电探测器的探测范围内,采用延时程序来排除干扰,防止误判。若为0,则返回主程序;若为1,则向P0高四位发送数据,使灯保持原来最亮状态,调用延时程序TIME1,判断R0是否等于0,若是则中断返回,若不是,则R0减1,继续循环,直至R0等到于0,此程序的目的是实现灯慢慢变暗。

三、实验结果:

本系统的主要设计思想来源于生活。台灯是一般家庭的生活必需品,但由于经常忘记关灯而造成巨大的能源浪费。全球这么多台灯,估算一下,消耗能源可观。另一个是作为一个必需品,当然要使生活变得更方便,省去了黑暗中开灯的麻烦,并且可以纠正坐姿。本系统在实验室进行了实物实验。热释电红外探测器1的距离是4m左右(距离可调),主要是因为般来说是门离书桌的距离;以便黑暗中时人一到门口则启动,省去了开灯的麻烦,用户可以根据自己的实际情况进行距离调节。热释电红外探测器1的距离是10cm左右(距离可调),主要考虑是当学习时,有时坐姿不正,引起身体离桌面太近,容易引起近视,此时台灯发出警告,提醒注意,若在设定的时间内未离开,则强制熄灭。有时人学习累了,趴在桌子上睡觉,而忘了关灯,这时系统就会检测到,从而启动延时程序,一段时间过后,台灯就会自动熄灭。

本系统的主要技术难点在于对人体红外信号的采集及处理。由于采用的是热释电红外传感器,当人体进入其感应范围时,传感器就会产生几mV信号,然后通过以BISS0001为中心的信号处理电路,对信号进行二次放大,并滤波,以防止外界的信号产生干扰。信号经过BISS0001后从而转化为数字信号输出,便于用单片机进处理。

本系统制作的主要设计源泉来源于生活,因此创新之处也在于处理生活中一些比较常见的问题。以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。当房间亮度不够时,且有人在附近时,台灯便会自动点亮,省去了黑暗中摸开关的麻烦;当学习时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;当学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的。除了硬件部分采用防干扰技术外,在软件中也采用了防干扰技术,当中断0产生时,并不立即执行,而是对其进行延时,防止由于不小心而进入到探测器2的范围内,以免产生误判。

虽然本系统以达到了使生活方便的目的,但是电路还是不够简单。因为当有多个热释电红外传感器时,就需要相应的信号检测电路。改进之处在于用一个信号处理电路同时控制多个传感器。还有一个不足之处在台灯开启时,产生的光强容易干扰光敏电阻对环境光强的判别,引起误判,现在的处理方法是传感器部分与控制部分单独分开放置。

参考文献:

1)       胡学海主编    单片机原理及应用系统设计       电子工业出版社    北京       2005年8月

2)       赵继文主编    传感器与应用电路设计              科学出版社           北京       2002年

3)       黄继昌主编    电子元器件应用手册                  人民邮电出版社    北京       2004年

实验心得:

       本系统的设计思想来源于生活,所以所具有的功能也是为生活的方便而设置的。因此就产生了制作智能台灯的想法。首先在与老师的商讨下,对项目进行了认证,确定了项目的可行性,列出了项目的主要难点及可能出现的问题,确定了以后的制作重点。接下来进行构思,列出大体的框架图。然后根据框架图用PROTEL画出电路原理图。

在对电路原理图进行了严谨的认证后,便开始了焊接电路。由于主要对象是人,因此采用热释电红外传感器,此传感器是专门用于接收人体产生的10um左右的信号,相应的利用BISS0001处理其所产生的信号并转化为可处理的数字信号。在焊接的过程中发现若用到两个光敏电阻,则可能使单片机产生误判。因此将两个光敏电阻合到一块,不仅简化了电路,还提高了系统的稳定性。当信号检测及处理部分完成后,便开始试检,以确定电路焊接正确与否。在对电路进行调试的过程中,必须排除外界的干扰,尤其是附近热源的红外线干扰。首先将BISS0001设置成不可重复触发方式,比较长延迟时间,以便得到稳定的输出信号,并把接收光电池的引脚接成高电平,使BISS0001认为一直处于黑暗之中,便于观测。在运行时,当人远离时,BISS0001输出低电平,符合要求;但是在人靠近后信号出现不规则的变化。利用示波器对BISS0001的各个管脚进行测量,发现信来源的主要不稳定因于传感器,因此,在目前没有更好的更换下,只好采用目前的热释电传感器。

接下来做的是数字电路部分,主要80C51、74LS138、LM324、DAC0832组成。数字电路部分比较简单,焊接完成后,编写一个新程序,对各个端口进行扫描,从而显示数字电路是可行的。

在对电路部分进行了初步的检测后,解决了比较主要的问题;因此依据硬件编写相应的程序,经过KEIL软件仿真后,语法上无错误,各个端口的数据正是所需要的,最后是将软件烧到单片机中,然后运行整个系统。

通过本次实验,熟悉了电路的开发和制作及论文的编著写。在实验中也遇不少难题,但通过各种方法进行了解决。

附录

源程序:

       ORG  0000H

     AJMP     MAIN

     ORG  0003H

     AJMP DET1          ;远探测器

     ORG  0013H

     AJMP DET0          ;近探测器

ORG  0050H

MAIN:   MOV     P0,  #00000001B    ;置初始值DET0,DET1可重复触发,灯灭

     MOV  TMOD,    #00000010B    ;方式2,8位自动重装计数器

     MOV  TCON,    #00010000B    ;开启计数器T0

     MOV  IE,  #10000111B    ;开启所有中断

     SJMP $

;灯慢慢变亮

DET1:    MOV  P0,  #00000001B

     CALL TIME0              ;灯亮度延时10ms

     MOV  P0,  #00000011B

     CALL TIME0

     MOV  P0,  #00000101B

     CALL TIME0

     MOV  P0,  #00000111B

     CALL TIME0

     MOV  P0,  #00001001B

     CALL TIME0

     MOV  P0,  #00001011B

     CALL TIME0

     MOV  P0,  #00001101B

     CALL TIME0

     MOV  P0,  #00001111B

     CALL TIME1

     RETI

;灯慢慢熄灭

DET0:    CALL TIME1              ;延时1分钟

     MOV  TCON,    A

     ANL  A,   #1

     JZ   LOOP

     MOV  P0,  #00001111B         

     CALL TIME0

     MOV  P0,  #00001101B

     CALL TIME0   

     MOV  P0,  #00001011B

     CALL TIME0

     MOV  P0,  #00001001B

     CALL TIME0

     MOV  P0,  #00000111B

     CALL TIME0

     MOV  P0,  #00000101B

     CALL TIME0

     MOV  P0,  #00000011B

     CALL TIME0

     MOV  P0,  #00000001B

     RETI

LOOP:    ret

;延时10ms

TIME0:   SETB TR0

     MOV  R0,  #250

     MOV  R1,  #20

D_1: DJNZ R0,  D_1

     MOV  R0,  #250

     DJNZ R1,  D_1

     CLR  TR0

     RET

;延时1分钟

TIME1:   SETB TR0

     MOV  R0,  #250

     MOV  R1,  #200

     MOV  R2,  #60

D_2:    DJNZ R0,  D_2

     MOV  R1,  #200

     DJNZ R1,  D_2

     MOV  R2,  #60

     DJNZ R2,  D_2

     CLR  TR0

     RET

END


好文章 顶

学习@##

学习,顶!

抽空自己做一个试试看!

dddddddddd

很好,很强大,感谢分享。

好东西。收下了

还真是。人才

很想自己做一个!

这个好

学习了

可以借鉴下!

顶贴看帖

看的不错~~但是不会啊

这个有程序,( ^_^ )不错嘛

不错 学习了

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

网站地图

Top