ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:340.61KB ,
资源ID:8124768      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8124768.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能电风扇模拟控制系统设计文档格式.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

智能电风扇模拟控制系统设计文档格式.docx

1、 方案三:采用外转子无刷电机作为风扇驱动,外转子无刷电机转速的可控性强,从每分钟几转到每分钟几万转都可以很容易实现,而且变速平稳、转速稳定、转速的线性度好。外转子无刷电机的转动可以通过软件编程调整它的转速,而且外转子无刷电机带动风扇转动的风力大,实验过程中,发现它的风量较为合适,稳定度也比较高。故选择采用这种方案,来完成风扇控制系统。2、单片机最小系统MCU选择:方案一:采用STM32微控制器,STM32是一款功能强大32位的单片机,但由于本次设计要实现的功能较少,STM32的代码操作比较繁琐,对于简单的设计用STM32会性能过剩,也由于stm32价格比较贵,所以放弃该方案。方案二:采用ATM

2、EGAl6单片机,它是一款低功耗8位单片机,虽然它的性能比较好,并且也能完成实验要求,但他的价格比较贵,性价比不高。经综合考虑,放弃该方案。方案三:采用80C52单片机,它是一款八位单片机,具有32个I/O引脚,2个定时、计数器,5个中断源等等优点,对于本次设计来说,使用80C52系列单片机,节约成本并且电路结构简单,最终选择该方案。3、蓝牙模块选择采用全模式蓝牙模块,这种蓝牙需要软件方面进行设置,设置主从模式传输速率和连接密码,模块功能较为强大,但由于本次设计用到的功能单一,所以放弃该方案。采用单模式蓝牙模块,这种蓝牙模块功能较为单一,但是操作起来方便,使用简单,价格便宜,考虑到种种因素最终

3、选择该方案。4、温度检测模块选择采用温湿度传感器,这种模块可以传回温湿度,满足了产品所需的要求,但是由于该温湿度传感器体积较大,价格稍贵所以放弃该方案。采用DS18b20,该款温度传感器口碑较好,精确度高,集成度高,且价格低廉,考虑到整体设计,代码的简洁程度,最终选择该方案。三、系统硬件电路与程序设计(1)温度检测部分通过DS18B20来读取空气中温度的值,并且实时返回该数据,单片机根据得到的数据有效地进行精准的控制和显示,极大地满足了用户对于温度的要求。(2)温度、电机转速和定时显示部分 通过风速按键来改变单片机I/O口所输出的PWM信号,驱动电机调速,通过定时按键实现定时关机功能,通过自动

4、模式按键实现对温度的实时操作,当温度大于25度时切换到自然风,当温度在20度和25度之间时切换到常风,当温度在20度以下时切换到睡眠风。(3)按键循环读取键值部分每隔一段时间扫描一次按键,这样可以定时得到所需的键值。然后通过单片机实时对电机进行操作。(4)蓝牙手机客户端部分如图所示,这是我们自己制作的客户端,界面简单大方,简洁明了,画面友好,功能丰富强大,可以随时远距离进行对电风扇的风速的操作,并且可以随时打开关闭摇头功能,还有定时功能,可以设定任意时间的数值,可以设定模式选择,设定自动模式下可以使风扇根据温度的大小而改变风速。我们还设定了总开关,可以随时关机和开机。五、软件设计 本系统中单片

5、机起到检测输入和控制输出等显示作用,所以软件设计比较复杂,启动后进入输入扫描,通过按键和安卓客户端来控制单片机给外转子无刷电机驱动力的大小,最后通过单片机控制液晶显示出来,整个软件设计形成一个循环的控制系统。(软件流程图见附录三,软件主要代码见附录四)六、测试方法与过程打开电源,模拟电风扇处于关机状态,在这个状态下按下按键1,开机。发现电机自动到了自然风状态开始转动,温度也开始实时显示,说明按键和电机还有温度传感器功能良好。然后按下摇头按键,摇头功能也正常,满足本次题目的要求。然后测试定时功能,按下定时按键,液晶显示从10秒递减,当递减到0时关机,此时摇头和电机功能均失效,所有按键都失效。再次

6、开机,选择自动模式,此时用手触摸ds18b20,当温度升高时,会自动改变风速。最后测试蓝牙客户端的功能,打开蓝牙客户端,依次按下各个按键,发现电机能按照本次设计要求进行转动,说明各项功能完好,本次设计圆满成功。七、总结综合上述的测试结果,本设计不仅圆满地完成了题目的基本要求,还完美的完成了发挥部分的要求。经过几天的艰苦奋斗和不懈努力,我和我的队友成功的调试出了各个模块并且联调成功,期间我们学到了很多也收获了很多,最重要的是我们锻炼出了坚持不懈的品格和在遇到困难时永不服输的精神,感谢学校给我们这次锻炼的机会。八、附录 附录一:硬件实物图 附录二:电路原理图附录三:程序流程图附录四:void ma

7、in (void) /主程序 int temp; float temperature; char displaytemp16;/定义显示区域临时存储数组 char displaytime4=000; /定义显示定时时间的存储数组 char key; DCOUT = 1; LCD_Init(); /初始化液晶 DelayMs(20); /延时有助于稳定 yaotoutingzhi(); LCD_Clear(); /清屏 Init_Timer(); Lcd_User_Chr(); /写入自定义字符 LCD_Write_String(0,0,speed:); LCD_Write_String(8,0

8、,time: xianshiguanji(); LCD_Write_Char(13,1,0x01);/写入温度右上角点 LCD_Write_Char(14,1,C /写入字符C DCOUT=0; while (1) /主循环 /循环调用按键扫描 key=KeyScan(); if(key=3&yunxingmoshi=0)/第一个按键,速度等级增加 / if(PWM_ON=10|PWM_ON=0)/ / PWM_ON=20;/ xianshiziranfen();/ / else if(PWM_ON=20)/ PWM_ON=5;/ xianshishuimianfen();/ else if(

9、PWM_ON=5)/ PWM_ON=10;/ /PWM_ON=58;/ xianshichangfen(); if(PWM_ON=0) PWM_ON=20; zongkaiguan=1; xianshiziranfen(); else if(PWM_ON=20) PWM_ON=10; zongkaiguan=1; xianshichangfen(); else if(PWM_ON=10) PWM_ON=5; xianshishuimianfen(); else if(PWM_ON=5) PWM_ON=0; /PWM_ON=58; zongkaiguan=0; xianshiguanji();

10、yaotoumoshi=0; yaotoutingzhi(); if(key=4&zongkaiguan)/ dingshimoshi=1; shijian+=10; if(shijian990) shijian=990; if(key=5&zongkaiguan) /3 if(yaotoumoshi=0) yaotoumoshi=1; zhenzhuanfanzhuan=1; yaotouzhengzhuan(); else yaotoumoshi=0; yaotoutingzhi(); /yaotou1=1; /yaotou2=1; if(key=6&zongkaiguan) /4 if(

11、yunxingmoshi=0) yunxingmoshi=1; yunxingmoshi=0; if(readtimeflag=1) readtimeflag=0; if(shijian0) shijian-; if(shijian=0&zongkaiguan&dingshimoshi) zongkaiguan=0; dingshimoshi=0; sprintf(displaytime,%d,shijian);/打印时间值=100 ) LCD_Write_String(13,0,displaytime);/ else =10) LCD_Write_Char(13,0,0 LCD_Write_

12、String(14,0,displaytime);/ else LCD_Write_Char(13,0, LCD_Write_Char(14,0, LCD_Write_String(15,0,displaytime); if(flag_REC=1) / flag_REC=0; if(bufff0=Obufff1=N) /第一个字节为O,第二个字节为N,第三个字节为控制码 switch(bufff2) case A : /自然风 if(zongkaiguan) PWM_ON=20; xianshiziranfen(); break;B: if(zongkaiguan) /常风 PWM_ON=10

13、; xianshichangfen(); break; /睡眠风 PWM_ON=5; xianshishuimianfen(); case D /打开摇头 if(zongkaiguan) yaotoumoshi=1; zhenzhuanfanzhuan=1; yaotouzhengzhuan(); E yaotoumoshi=0; yaotoutingzhi(); /yaotou1=1; /yaotou2=1;F/自动 yunxingmoshi=1;G yunxingmoshi=0; / 右转 / bee=0;J if(zongkaiguan) dingshimoshi=1; shijian=

14、(int)(bufff3-)*(int)100+(int)(bufff4-)*(int)10+(int)(bufff5- if(shijian shijian=999; H zongkaiguan=1;I PWM_ON=0; zongkaiguan=0; dingshimoshi=0; xianshiguanji(); if(ReadTempFlag=1) ReadTempFlag=0; temp=ReadTemperature(); temperature=(float)temp*0.0625; sprintf(displaytemp,Temp % 7.3f,temperature);/打印温度值 if(temperature10.0&temperature40.0) LCD_Write_String(0,1,displaytemp);/显示第二行 if(yunxingmoshi=1&zongkaiguan) if( temperature20.0) PWM_ON=5; else if(temperature25.0) PWM_ON=20; xianshiziranfen(); / SendStr(displaytemp);

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

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