一:引言
眾所周知我們生活中少不了臺燈,在日常生活中臺燈是我們的生活必需品,在使用中用戶經常忘記關燈而造成資源浪費,夜晚摸黑要去開燈,非常不方便,臺燈使用者大多數是學生,如果坐姿不端正,就會影響人的視力,基于上述等情況,本人設計了一種具有以下功能的臺燈
(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--); }