一:引言
众所周知我们生活中少不了台灯,在日常生活中台灯是我们的生活必需品,在使用中用户经常忘记关灯而造成资源浪费,夜晚摸黑要去开灯,非常不方便,台灯使用者大多数是学生,如果坐姿不端正,就会影响人的视力,基于上述等情况,本人设计了一种具有以下功能的台灯
(1) 该产品由220V交流电直接供电。通过POWER键可以开启/关闭台灯。
(2) 该产品有两种工作状态(AUTO/MENU),通过“AUTO/MENU”键切换,在MENU状态时,可通过“+” 键及“-”键调整台灯的亮度,并利用超声波传感器测量用户与台灯的距离,当距离小于30cm时,通过控制灯光闪烁(闪烁频率为每秒钟3次左右)提醒用户注意保持与台灯的距离;在AUTO状态时,除具备有MENU状态相同功能外,还具备室内是否有人检测的功能,当室内没有人时,自动关闭台灯(为了便于测试,请将检测时间定为5秒,即检测到没有人的时间超过5秒时,关闭台灯,检测距离为4m),当有人进入房间时(检测距离为4m),自动开灯。
(3) 该产品由功率为3W的LED灯提供照明,必须注意:3W的LED灯工作电流为700mA左右,工作电压为3.6V左右,请注意安全。]
(4) 该产品测距采用超声波传感器,当有物体移动时,超声波接收的信号幅度会发生变化,利用这个原理来检测是否有人。
二:硬件电路设计
(1)总体结构
智能台灯是根据超声波测距来实现功能,通过对220V加以变压整流滤波得到+15V,+12V,+5V,—12V电压,然后通过555芯片产生一个40KHZ的脉冲信号经过反向器74LS04驱动,再由超声波探头发射出去,接收部分通过TL084放大,分别输出到两路,一路是直接接LM393比较器比较,另一路先通过检波二极管,通过电路上的电容C21,VR1进行滤波,滤除较高的高频信号,再与LM393比较器比较,两路都有触发信号输出单片机中,最后通过按键来实现LED的亮度调节以及LED的频闪,
(2)电源电路
本次MCU采用AT89S52单片机,该单片机是一种低功耗高性能CMOS8位的控制器,内部存储器8K, (4)超声波发射电路 超声波发射电路采用555芯片进行驱动,由AT89S52发送驱动信号进行驱动,通过超声波发射40KHZ, 接收电路采用TL084芯片对超声波信号放大,此次我设计中用到了两级放大,再用LM393进行信号对比驱动三极管,单片机通过计算发射到接收完毕的时间可以得知台灯与人的距离, (6)LED驱动电路 AT89S52通过单片机的IO口控制与芯片PT4115的DIM口相连,通过程序产生PWM脉冲信号,送出的输出功率可以驱动LED,同时可以通过单片机的接口接入外部按键可以调节LED的亮度, 总电路图如下: PCB如下: 程序清单如下: #include<reg52.h> #define uchar unsignedchar #define uint unsignedint sbit key=P2^2; sbit key1=P2^3; sbit led=P1^0; uint PWM=0x7f; void delayms(uint xms); void delay(uint t) ; void main() { TMOD=0x21; TH0=0xfc; TL0=0x66; TH1=PWM; TL1=0; EA=1; ET0=1; ET1=1; TR0=1; while(1) { do if(PWM!=0xff) { PWM=PWM+1; delayms(10); } while(key==0); do if(PWM!=0x02) { PWM=PWM-1; delayms(10); } while(key1==0); } } void timer0 interrupt 1 { TR0=0; TH0=0xfc; TL0=0x66; TH1=PWM; TR1=1; led=1; } void timer1 interrupt 3 { TR1=0; led=0; } void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=120;j>0;j--); } void delay(uchar t) { while(t--); }