感应台灯的设计与实现.docx

上传人:b****1 文档编号:2397517 上传时间:2023-05-03 格式:DOCX 页数:17 大小:127.27KB
下载 相关 举报
感应台灯的设计与实现.docx_第1页
第1页 / 共17页
感应台灯的设计与实现.docx_第2页
第2页 / 共17页
感应台灯的设计与实现.docx_第3页
第3页 / 共17页
感应台灯的设计与实现.docx_第4页
第4页 / 共17页
感应台灯的设计与实现.docx_第5页
第5页 / 共17页
感应台灯的设计与实现.docx_第6页
第6页 / 共17页
感应台灯的设计与实现.docx_第7页
第7页 / 共17页
感应台灯的设计与实现.docx_第8页
第8页 / 共17页
感应台灯的设计与实现.docx_第9页
第9页 / 共17页
感应台灯的设计与实现.docx_第10页
第10页 / 共17页
感应台灯的设计与实现.docx_第11页
第11页 / 共17页
感应台灯的设计与实现.docx_第12页
第12页 / 共17页
感应台灯的设计与实现.docx_第13页
第13页 / 共17页
感应台灯的设计与实现.docx_第14页
第14页 / 共17页
感应台灯的设计与实现.docx_第15页
第15页 / 共17页
感应台灯的设计与实现.docx_第16页
第16页 / 共17页
感应台灯的设计与实现.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

感应台灯的设计与实现.docx

《感应台灯的设计与实现.docx》由会员分享,可在线阅读,更多相关《感应台灯的设计与实现.docx(17页珍藏版)》请在冰点文库上搜索。

感应台灯的设计与实现.docx

感应台灯的设计与实现

电子科技大学微芯杯

刘承文

简介本智能感应台灯控制系统基于超声波测距方式,利用单片机进行处理,能够感知一定范围内的人、或其他物体,当人或物进入其探测范围,台灯开启,并随着距离台灯距离减少。

可利用PWM控制台灯亮度,以节约电能。

1.项目背景3

2.方案设计3

3.设计过程4

4.实用化的可能性、推广价值13

5.创新点14

6.作品实物图片14

项目背景随着科技的高速发展,各种各样的科技产品、家用电器开始走入人们的生活,这一切都大大地提高了人们的工作效率、改善了人们的生活,现在电器的发展趋势是智能化,这样会使人们使用起来更加方便。

随着智能控制理论和人工智能研究的深入,各种更加逼真地模拟人类智能的家用电器会更多地出现,而单片机和智能理论的结合,将来不但更多地改进现行家用电器,而且将会产生全新的家用电器。

家用电器因为单片机的加入而走向智能化,并且随着人们生活水平的提高日益走向平民化,我们的生活也随着家用电器的发展越来越方便、舒适。

随着家用电器的发展,作为家用电器当中的小台灯也要顺应科技的发展步伐走向智能化。

目前,灯具市场上出售的灯具种类繁多,一般台灯均采用220V交流电源供电,日光灯管、白炽灯泡为光源,手动开关或触摸感应式开光来控制。

但这类台灯存在很多弊端,一是电压是不安全电压,给人们使用带来不安全因素;二是日光灯还具有频闪效应,经常使用会给人的眼睛带来一定的伤害;三是耗电量大、台灯通常都是以日光灯为主,在几瓦到几十瓦之间;四是人工化,人们由于手工操作,往往会忘记关灯,这也造成电能的浪费。

正因如此,制作生产智能感应台灯具有很重要的意义

方案设计

2.1设计题目:

制作一个基于超声波、红外等测距方式的智能感应台灯控制系统,系统能够感知一定范围内的人、或其他物体,当人或物进入其探测范围,台灯开启,并随着距离台灯距离减少,利用PWM控制台灯亮度,以节约电能。

2.2基础要求:

1、在控制系统2m范围内,能正常感知物体并开启台灯

2、当人或物,移出其感应范围时,能够关闭台灯

3、在人或物与控制系统距离变化超过20cm时,台灯光线应用明显变化

2.3发挥部分:

1、控制系统能同时控制2路或2路以上台灯

2、控制系统能显示人或物体与控制系统距离

3、控制系统能够实时显示系统开启时间

4、其他

设计过程

3.1方案比较与选择

3.1.1测距模块的选择

方案一:

红外线测距模块

SHARF夏普原装红外测距传感器GP2Y0A21YK0F量程10-80cm

Risym

方案二:

超声测距模块

H¥-SRF05超声波测距摸块

附资料原理图

工作电压:

4.5V~5.5V。

功耗电流:

最小1mA最大20mA

谐振频率:

40KHz

探测距离范围:

4毫米〜4米。

误差:

4%经比较,超声测距模块的距离和工作电压都符合系统要求,而且超声测距模块比较便宜,所以本次设计采用超声测距模块。

3.1.2台灯电路的选择

方案一:

采用三极管放大电路

方案二:

采用上拉电源的方式

经比较,本次设计采用四组LED没有必要采用三极管放大电路,三极管电路复杂,上拉电源的方法电路简单,而且灌入单片机的电流在可控范围内,所以本次设计米用方案二。

3.2方案描述

系统总体框图如图所示。

超声测距模块测出超声波从发出到返回过程的时间,单

片机通过计时器记录这一时间,并按照公式计算出物体到系统的距离。

这个距离再通过显示模块显示出来,距离作为一个参数,PWM波参考距离的值开启或关闭

LED灯。

超声波测

计时器

距模块

J显示

STC89C5

2单片机

4个LED灯

当物体与系统间的距离为0-50cm时,开启四盏灯,距离为50-100cm时开启三盏灯,距离为100-150cm时开启两盏灯,距离为150-200cm时开启一盏灯,距离大于200cm时关闭台灯。

3.3设计原理由单片机的P3A3引脚产生一个20us的脉冲信号,超声测距模块接收到此信号的时候,产生超声波,同时ECH(引脚产生高电平信号,当接收到超声波以后,echo引脚产生低电平信号,单片机通过定时器1中断来记录时间,以此来计算距离。

单片机得出距离以后,通过定时器0中断来驱动计时数码管和距离显示数码管和PWM波,以此来控制LED灯。

3.4程序

#include//包括一个52标准内核的头文件

#defineucharunsignedchar//定义一下方便使用

#defineuintunsignedint

#defineulongunsignedlong

〃***********************************************

sfrCLK_DI'

V=0x97;//

//

为STC单片机定义,系统时钟分频为STC单片机的IO口设置地址定义

sfr

P0M1

=0X93;

sfr

P0M0

=0X94;

sfr

P1M1

=0X91;

sfr

P1M0

=0X92;

sfr

P2M1

=0X95;

sfr

P2M0

=0X96;

**********************************************

 

sbitTrig=

:

P3A3;//

产生脉冲引脚

sbitEcho

=P3A2;//

回波引脚

sbittest=

P3A1;//

测试用引脚

sbitLED仁卩3八4;

sbitLED2=P3A5;

sbitLED3=P3A6;

sbitLED4=P3A7;〃定义4个灯泡引脚

定义计时器计时变量

staticunsignedcharsecond,minute,hour;〃unsignedinttcount;

unsignedcharm;

uchar

table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管显示0-9

code计时用

inttime_count=1;unsignedchardistances;

ucharcodeSEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//数码管

0-9

uintdistance[4];//测距接收缓冲区

ucharge,shi,bai,temp,flag,outcomeH,outcomeL,i;//自定义寄存器

bitsucceed_flag;//测量成功标志

//********函数声明

voidconversion(uinttemp_data);

voiddelay_20us();

voidpai_xu();

voidmain(void)//主程序{

uintdistance_data,a,b;

ucharCONT_1;

CLK_DIV=0X03;//系统时钟为1/8晶振(pdf-45页)

P0M1=0;//将io口设置为推挽输出

P1M1=0;

P2M1=0;

P0M0=0XFF;

P1M0=0XFF;

P2M0=0XFF;

i=0;

flag=0;

test=0;

Trig=0;//首先拉低脉冲输入引脚

TMOD=0x11;//定时器0,定时器1,16位工作方式

TR0=1;//启动定时器0

IT0=0;//

ET0=1;//

ET1=1;//

EX0=0;//

EA=1;//

由高电平变低电平,触发外部中断打开定时器0中断打开定时器1中断关闭外部中断打开总中断0

while

(1)//程序循环{

EA=0;

Trig=1;delay_20us();Trig=0;//while(Echo==0);//

succeed_flag=0;//

EX0=1;//

TH1=0;//

TL1=0;//

TF1=0;//

TR1=1;//EA=1;

产生一个20us的脉冲,在Trig引脚等待Echo回波引脚变高电平清测量成功标志打开外部中断

定时器1清零

定时器1清零

启动定时器1

while(TH1<30);//

TR1=0;

EX0=0;//

等待测量的结果,周期

//关闭定时器1关闭外部中断

65.535毫秒(可用中断实现)

if(succeed_flag==1)

{

distance_data=outcomeH;//distance_data<<=8;//distance_data=distance_data|outcomeL;//位结果数据

distance_data/=40;//等于厘米

}//

米,Y米=(X秒*344)/2

//

/344==》X秒=0.0058*Y米==》厘米二微秒/58

if(succeed_flag==0)

{

distance_data=0;//

test=!

test;//

测量结果的高8位

放入16位的高8位

与低8位合并成为16

微秒的单位除以58

为什么除以58等于厘

X秒=(2*Y米)

没有回波则清零

测试灯变化

}distance[i]=distance_data;//i++;distances=distance_data;

将测量结果的数据放入缓冲区

if(i==3)

distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4;

 

pai_xu();

distance_data=distance[1];

a=distance_data;if(b==a)CONT_1=0;if(b!

=a)CONT_1++;if(CONT_1>=3){CONT_1=0;b=a;conversion(b);

}i=0;

}

}

}//外部中断0,用做判断回波电平

外部中断是0号

取出定时器的值取出定时器的值至成功测量的标志关闭外部中断

INTO_()interrupt0//

{

outcomeH=TH1;//outcomeL=TL1;//succeed_flag=1;//EX0=0;//

//定时器0中断,用做显示timer0()interrupt1//定时器0中断是1号

{

TH0=(65536-5)/256;

TL0=(65536-5)%256;switch(flag)

{case0x00:

P0=ge;P1=table[minute/10];P2=0x17;flag++;break;

case

0x01:

P0=shi;P1=(table[minute%10]&0x7f);P2=0x2b;flag++;break;

case0x02:

P0=bai;P1=table[second/10];P2=0x4d;flag++;break;

case0x03:

P1=table[second%10];P2=0x8f;flag=0;break;

}//计时器显示和距离显示

time_count++;

if(distances<5&&distances==5)

{

LED1=0;

LED2=0;

LED3=0;

LED4=0;

}if(5

{

if(time_count

{

LED1=0;

LED2=1;

LED3=1;

LED4=1;

}

else

{

LED1=1;

LED2=1;

LED3=1;

LED4=1;

}

if(time_count>50)

{time_count=1;

}

}//距离在0-50,1个台灯变化,其余三个都亮

if(51

if(time_count

{

LED1=0;

LED2=0;

LED3=1;

LED4=1;

}

else

{

LED1=0;

LED2=1;

LED3=1;

LED4=1;

}if(time_count>50)

{time_count=1;

}

}//50-100一个灭一个变化两个常亮

if(101

if(time_count

{

LED1=0;

LED2=0;

LED3=0;

LED4=1;

}

else

{

LED1=0;

LED2=0;

LED3=1;

LED4=1;

}

if(time_count>50)

{

time_count=1;

}

}//100-150依次类推

if(151

if(time_count

{

LED1=0;

LED2=0;

LED3=0;

LED4=0;

}

else

{

LED1=0;

LED2=0;

LED3=0;

LED4=1;

}

if(time_count>50)

{

time_count=1;

if(distances>200)

{

LED1=0;

LED2=0;

LED3=0;

LED4=0;

}//以上为台灯显示,pwmt皮输出

tcount++;

if(tcount==5800)

{tcount=0;

second++;

if(second==60)

{second=0;

minute++;

if(minute==60)

{minute=0;

hour++;

if(hour==24)

{hour=0;

}

}

}

}//计时器时间变量增加

}

//*****************************************************************

//定时器1中断,用做超声波测距计时

timer1()interrupt3//定时器0中断是1号

{

TH1=0;

TL1=0;

}

//******************************************************************//显示数据转换程序voidconversion(uinttemp_data)

{

ucharge_data,shi_data,bai_data;

bai_data=temp_data/100;

temp_data=temp_data%100;//取余运算shi_data=temp_data/10;

temp_data=temp_data%10;//取余运算ge_data=temp_data;

bai_data=SEG7[bai_data];

shi_data=SEG7[shi_data];

ge_data=SEG7[ge_data]

EA=0;

bai=bai_data;

shi=shi_data;

ge=ge_data;

EA=1;

}

//******************************************************************

voiddelay_20us()

{ucharbt;

for(bt=0;bt<100;bt++);

}

voidpai_xu()

{uintt;

if(distance[0]>distance[1]){t=distance[0];distance[0]=distance[1];distance[1]=t;}

if(distance[0]>distance[2]){t=distance[2];distance[2]=distance[0];distance[0]=t;}

if(distance[1]>distance[2]){t=distance[1];distance[1]=distance[2];distance[2]=t;}

}

四•实用化的可能性、推广价值

到目前为止,在灯具市场上,很少见到采用+5V的直流电源供电的一种人体智能台灯,它具有既不会出现触电的意外,又具有使用寿命长、无辐射、又不污染等优点,有许多普通按键台灯所无法比及的优势,智能化台灯一方面可以更节省电能,有利于环保,另一方面,在黑暗的时候自动开关灯的功能也让使用者使用起来更方便,省去黑暗中摸灯的麻烦。

五•创新点

1.附带测距显示功能,可实时掌握距离大小。

2•附带时间显示功能,可即时了解台灯开启时间六•作品实物图片

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2