智能电风扇论文毕业论文毕业设计.docx
- 文档编号:16289153
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:27
- 大小:288.21KB
智能电风扇论文毕业论文毕业设计.docx
《智能电风扇论文毕业论文毕业设计.docx》由会员分享,可在线阅读,更多相关《智能电风扇论文毕业论文毕业设计.docx(27页珍藏版)》请在冰点文库上搜索。
智能电风扇论文毕业论文毕业设计
智能电风扇设计
摘要:
本系统主要实现小型智能电风扇的设计。
其主要具有以下功能:
可实现无级调速,风扇的转速和工作模式可以自行设计;关机自动记忆设置的参数;可通过LCD显示日期、时间、温度、风扇转速、运行模式等;能够实现红外遥控风扇的工作方式。
该系统主要包括时间测量、温度测量、风速测定、红外发送、红外接收、单片机系统、矩阵键盘、PWM电机驱动等模块,经测试,其工作状态良好。
关键字:
智能风扇无级调速红外遥控PWM电机
Abstract:
Thissystemismainlytoachieveasmallsmartfandesign.Hasthefollowingmainfunctions:
toachievevariablespeed,fanspeedandmodecanbedesigned;offtorememberthesettingofparameters;throughtheLCDdisplaydate,time,temperature,fanspeed,operationmode;toachieveinfraredremotefanworks.Thesystemincludesatimemeasurement,temperaturemeasurement,velocitymeasurement,infraredtransmitter,infraredreceiver,single-chipsystems,matrixkeyboard,PWMmotordrivemodules,tested,goodworkingorder.
Keywords:
infraredremotecontrolPWMintelligentvariablespeedfanmotor
一、系统方案与论证
1.方案选择
1.1电机驱动
方案1:
使用L293、L298等专业驱动芯片。
方案2:
采用H桥式驱动电路
方案论证:
本系统采用H桥式驱动电路。
其主要部分包括四个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管,根据不同三极管对的导通情况,电流可能会从左至右或者从右至左流过电机,从而控制电机的转向。
1.2红外遥控发送和接收
分析:
红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。
接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。
指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制。
方案论证:
系统使用555振荡器产生38KHz的载波与按键产生的调制波调制通过扩流电路驱动红外二极管发光,而接收电路则采用HS0038接收管和其简单的外围电路组成。
1.3风扇测速
分析:
风扇测速是通过直射式光电开关来实现的。
方案论证:
本系统通过采用OS285B10光电开关实现风扇测速,后接LM393比较器,扇叶经过光电开关则返回低电平,否则返回高电平从而实现测速。
1.4键盘电路的设计
分析:
按照要求,键盘模块要求具有总线扩展方式和串行接口方式。
总线接口方式可以通过外接锁存器芯片,由P2口控制芯片片选实现。
串行接口方式则有SK5278专用串行接口芯片完成
方案论证:
系统中的数据总线是双向的,其驱动器也要选用双向的,如74LS245。
74LS245也是三态的,有一个方向控制端DIR,DIR=1时输出(An→Bn),DIR=0时输入(An←Bn)。
1.5时钟
因为该系统要实现掉电计时、保存数据和自动开关机功能,因此要选择专用时钟芯片。
本系统使用DS12C887专用使用芯片,其具有以下特点:
在没有外部电源的情况下课工作10年;自带晶体振荡器及锂电池;可准确计时;有二进制码和BCD码代表时钟和闹钟信息等。
2.系统描述
系统主要包括电机驱动、红外遥控、键盘模块、扇测速和时钟五个模块。
其工作模式为:
由单片机输出PWM波给电机两个输入端口之一,通过不同端口输入控制电机正传或者翻转。
电机驱动输出接风扇电机控制风扇转动。
测速则是通过把OS25B10卡在风扇边缘由其外围电路驱动,把比较结果输出给单片机。
单片机同时管理和控制红外遥控电路:
通过按键送给红外发送电路不同的调制波(基波),然后采集和处理红外接收电路的输出,从而决定PWM波的占空比,进而控制风扇的风速和运行模式。
此外由单片机小系统板上的DS18B20温度传感器监测外界温度,通过单片机控制,在液晶上显示。
图1系统整体框图
三、电路与程序设计
1.电机驱动电路设计
电路工作原理分析:
要使电动机旋转,只需要将高电平施加在“正向”输入端,另一端则不需要施加信号。
同时利用脉宽调制信号可以控制电机转动速度。
当Q2的基极为高电平时,Q2导通,Q3也导通,此时电流从正电源端经Q3、Q2到地,流过电动机的电流方向是从右向左,此时电动机转动方向称之为“正转”,反之,则称为翻转。
2.红外发送和接收电路
电路说明:
本系统把红外发射和单片机小系统做在了一个PCB板上。
单片机小系统主要由晶振、复位电路和单片机组成。
红外发送部分则是通过555触发器产生38KHz的载波,经过与案件产生的基波相调制,驱动红外二极管发光。
红外接收电路则是使用HS0038接收器,其特点为红外接收一体化,即将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的TTL信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。
3.测速电路设计
电路说明:
改电路中前端得光电开关为直射式光电传感器。
通过把光电开关卡在风扇边缘,当扇叶经过光电开关直射光则被挡住,而经过扇叶空隙时,光电开关完成直射。
后向比较器则是采集和比较光电开关的输出,分析并且产生高低电平反馈送给单片机。
单片机计算在一定时间内高低电平的个数,再由风扇固有的扇叶数,从而得到风速的值。
4.键盘
图2可控增益放大原理图
电路说明:
系统采用矩阵键盘作为单片机的外部键盘和红外遥控的控制键盘。
该键盘使用总线方式控制,由P0口输出数据,经过双向锁存器74LS245到各个按键。
由P2口分配端口作为控制端口。
5时钟电路设计
6.程序流程图
本系统软件部分任务重大,包括温度换算与显示,日期、时间的设计与显示。
驱动输入PWM波的生成与调节,风速的计算和显示以及风扇工作模式的设置与选择,红外遥控的控制。
主程序流程图如下所示。
图3主函数程序流程图
四、测试方法及测试结果
1.测试条件
正常条件下即可测试
2.测试仪器
1数字万用表
2DH1723-1直流四路稳压电源
3DS1052E示波器
3.测试方案
首先分模块逐个测试,修正每个模块存在的问题,确定各个模块没有差错再按照整体方案和设计连接号单片机和键盘,红外发送和接收,驱动和风扇以及风速测量部分。
把程序下载到单片机,使用直流稳压电源给驱动等各个需要外部供电的模块提供输入电压。
观察风扇的工作情况。
再调节PWM波的输出,记录风扇风速情况。
然后按键选择风扇的工作模式,观察和记录风扇风速等。
同时观察液晶显示,实时温度,时间和风速。
4.测试结果
1.电机驱动测试
此部分测试主要是通过直流稳压源万用表来完成的。
由直流电压源的一路输出12V给驱动电路提供工作电压。
另一路则模拟平均的PWM波,输出给驱动电路的一路输入,另一路则由排线短接。
驱动输出接风扇电机。
风扇正常运行,
测试结果分析:
该部分是成功的。
较好的满足的题目要求。
2.测速电路
此部分测试主要是通过直流稳压源万用表来完成的。
连接好硬件电路,接入OS25B10,驱动电路和风扇,通过示波器观察测速电路输出。
测试发现,两部分组合,输出比较标准的方波。
测试结果分析:
与预期的结果相符合,该电路工作正常。
3.测温和时钟电路测试
这两部分的测试主要是通过单片机、液晶与两部分电路连接,通过观察液晶显示来实现的,两部分硬件电路很简单,主要通过程序的调试和修改来完成。
测试结果分析:
观察液晶显示测出,这两部分均能够正常在液晶上面反映出来,均能正常工作。
结束语
经过前面几轮课题的训练,本次课题做起来要得心应手得多。
不过在做的过程中还是遇到了不少的问题。
尤其是在硬件测试的时候。
比如说键盘模块,一开始最后一列按键怎么都不能正常工作,因为按键电路很简单,所以检查发现有一处线有细微的断裂,经过修改才可正常运行。
还有驱动,因为把散热便与地焊接在了一起,而其又是经过螺丝与大功率三极管的集电极连接起来的,致使两片三极管不工作。
软件测试开始时,发现程序时钟不能下载到小单片机,通过再三的尝试发现复位键接线有误导致其一直复位。
由于前期工作花费了大部分时间,留给测试的时间相对较少,这是一个误区,测试其实是最具考验的部分,找出问题一般需要花费大部分时间。
这当然也是因为我们经验不足而致,总之,吃一堑长一智,这是一个经验积累的过程。
另外感谢实验室老师们的辛苦工作和同学们的热情帮助,这更是课题成功必不可少的因素。
参考文献
[1]高吉祥.全国大学生电子设计竞赛培训系列教程.电子工业出版社.2007
[3]陈尚松.电子测量与仪器.电子工业出版社出版.2005
[4]
[5
[6]
[7
[8
[9
[10]高吉祥等.全国大学生电子设计竞赛培训系列教程.电子工业出版社.2007
附录
附录一:
驱动电路PCB
附录二:
键盘PCB
附录三:
单片机和遥控发送PCB
附录四:
程序设计
/***************************接收************************/
voidint0init()
{
IT0=1;
EX0=1;
EA=1;
}
voidtimer1()interrupt2
{
irtime++;
cesu++;
}
voidint0()interrupt1
{
if(startflag)
{
if(irtime>17)
{
bitnum=0;
}
irdata[bitnum]=irtime;
irtime=0;
bitnum++;
if(bitnum==9)
{
bitnum=0;
ireceok=1;
}
}
else
{
startflag=1;
irtime=0;
}
}
voidirpros()
{
ucharzhi,i,k=1;
for(i=0;i<8;i++)
{
zhi=zhi>>1;
if(irdata[k]>3)
{
zhi=zhi|0x80;
}
k++;
}
ircode=zhi;//最终接收值
irprosok=1;
}
voidjieshou()
{
if(ireceok)
{
irpros();
ireceok=0;
}
if(irprosok)
{
irprosok=0;
switch(ircode)
{
case1:
speed++;break;
case2:
speed--;break;
case5:
direction=0;break;
case6:
direction=1;break;
case9:
{
TT2=0;
moshi++;
if(moshi>5)
moshi=0;
break;
}
default:
break;
}
if(speed>20)
speed=0;
}
}
/**********************液晶***************************/
voidput_char(ucharch)
{
while(busy==1);
P0=ch;
wr=0;
cs573=0;
_nop_();
req=0;
while(busy==1);
req=1;
}
voidScreen_Con(ucharcommand)//整屏清屏0xF4整屏上移0xF5下移0xF6左0xF7右0xF8反白0xFA0xE5
{
put_char(command);
}
voidDisplay_StrChar(ucharcommand,ucharx,uchary,uchar*p)//0xE9行位置0-7列位置0-14中文代码ASC2代码结束符
{//0xEB行坐标0-112列坐标0-232中文代码ASC2代码结束符
put_char(command);
put_char(x);
put_char(y);
while(*p!
='\0'){put_char(*p);p++;}
put_char(0x00);
}
/*********************时钟***********************/
voidwrite_ds(ucharadd,uchardate)
{
dscs=0;
dsas=1;
dsds=1;
dsrw=1;
P0=add;
dsas=0;
dsrw=0;
P0=date;
dsrw=1;
dsas=1;
dscs=1;
}
ucharread_ds(ucharadd)
{
uchards_date;
dsas=1;
dsds=1;
dsrw=1;
dscs=0;
P0=add;
dsas=0;
dsds=0;
P0=0xff;
ds_date=P0;
dsds=1;
dsas=1;
dscs=1;
returnds_date;
}
voidset_time()
{
write_ds(0x0a,0x20);
write_ds(0x0b,0x26);
write_ds(0,0);//秒
write_ds(1,0);//秒闹钟
write_ds(2,0);//分
write_ds(3,0);//分闹钟
write_ds(4,0);//小时
write_ds(5,0);//小时闹钟
write_ds(6,0);//星期
write_ds(7,0);//日期
write_ds(8,0);//月份
write_ds(9,0);//年
}
/***********************************EEPROM*********************************/
unsignedchareeprom_read(unsignedintaddres);
voideeprom_write(unsignedintaddress,unsignedcharwdata);
voideeprom_eares(unsignedintaddres);//扇区擦除。
voideeprom_eares(unsignedintaddres)//扇区擦除。
//ADDRESS0x2A00,第二扇区
{unsignedi;
isp_addrl=addres;//低位地址
isp_addrh=addres>>8;//高位地址
isp_contr=0x01;
isp_contr=isp_contr|0x80;//设时间与充ISP操作。
isp_cmd=0x03;//扇区命命令
isp_trig=0x46;//触发
isp_trig=0xb9;//触发启动。
for(i=0;i<3;i++);
isp_addrl=0xff;
isp_addrh=0xff;
isp_contr=0x00;
isp_cmd=0x00;
isp_trig=0x00;
}
voideeprom_write(unsignedintaddres,unsignedcharwrite_data)//写数据。
{unsignedchari;
isp_data=write_data;//要写入的数据。
isp_addrl=addres;//低位地址
isp_addrh=addres>>8;//高位地址
isp_contr=0x01;
isp_contr=isp_contr|0x80;//设时间与充ISP操作。
isp_cmd=0x02;//写命令
isp_trig=0x46;//触发
isp_trig=0xb9;//触发启动。
for(i=0;i<3;i++);
isp_addrl=0xff;
isp_addrh=0xff;
isp_contr=0x00;
isp_cmd=0x00;
isp_trig=0x00;
}
unsignedchareeprom_read(unsignedintaddres)
{unsignedchari,z;
isp_addrl=addres;//低位地址
isp_addrh=addres>>8;//高位地址
isp_contr=0x01;
isp_contr=isp_contr|0x80;//设时间与充ISP操作。
isp_cmd=0x01;//写命令
isp_trig=0x46;//触发
isp_trig=0xb9;//触发启动。
for(i=0;i<3;i++);
isp_addrl=0xff;
isp_addrh=0xff;
isp_contr=0x00;
isp_cmd=0x00;
isp_trig=0x00;
z=isp_data;
return(z);
}
/******************************温度**************************/
voiddelay(uchari)
{
while(i--);
}
voidinit_DS18B20(void)
{
ucharx;
DS=1;
delay(4);
DS=0;
delay(80);
DS=1;
delay(20);
x=DS;
delay(20);
}
ucharreadbyte(void)
{
uchari;
ucharvalue=0;
for(i=8;i>0;i--)
{
DS=0;
value>>=1;
DS=1;
if(DS)
value|=0x80;
delay(10);
}
return(value);
}
voidwrbyte(uchardat)
{
uchari;
for(i=8;i>0;i--)
{
DS=0;
DS=dat&0x01;
delay(10);
DS=1;
dat>>=1;
}
}
uintrdtemperature()
{
uchara,b;
uinttemp;
init_DS18B20();
wrbyte(0xCC);//跳过ROM
wrbyte(0x44);//启动温度转换
delay(100);
init_DS18B20();
wrbyte(0xCC);//跳过ROM
wrbyte(0xBE);//(读取温度寄存器)前两个就是温度
a=readbyte();//低八位
b=readbyte();//高八位
temp=(b*256+a)*6.25;//传感器返回值除16得实际温度值,再乘100,得两位小数
returntemp;
}
/*********************测速*********************/
voidint1init()
{
IT1=1;
EX1=1;
EA=1;
}
voidint1()interrupt2
{
if(startcesu)
{
numm++;
if(numm==11)
{
sudu=cesu*0.256/1000/11*100;
}
}
else
{
startcesu=1;
cesu=0;
}
}
/********************PWM波********************************/
voidtimer0(void)interrupt1
{
_nop_();
TH0=(65536-500)/256;//定时0.5ms,PWM波周期为20ms
TL0=(65536-500)%256;
T++;
TT2++;
switch(moshi)
{
case0:
speed=10;break;//中风,默认模式
case1:
speed=20;break;//强风
case2:
speed=5;break;//弱风
case3:
//睡眠风
{
if(TT2<10000)
speed=13;
else
{
speed=7;
TT2=10100;
}
}
case4:
//自然风
{
if(TT2<10000)
speed=15;
elseif(TT2>10000&&TT2<10000)
speed=7;
else
TT2=0;
}
}
if(T==speed*2)
pwmvalue=0;
if(T==40)
{
T=0;
pwmvalue=1;
}
if(direction==0)//正转
{
pwm1=pwmvalue;
pwm2=0;
}
else
{
pwm1=0;
pwm2=pwmvalue;
}
}
voidtimer0init()
{
TMOD=0x21;
TH1=0x00;
TH1=0x00;
EA=1;//或者IE=0x82
ET0=1;//或者IE=0x82
TR0=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 电风扇 论文 毕业论文 毕业设计