预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

13蓝牙控制智能窗帘毕业设计使用说明院系:电气(机电)工程学院_成员:___导师:____________时间:______2015年5月13日___目录一、整体思路2二、主要技术数据参数2三、问题及解决办法2四、手机端APP3五、蓝牙模块与手机连接3六、元件清单7七、实物图8八、电路原理图9九、源程序10蓝牙控制窗帘说明一、整体思路系统采用HC-05蓝牙模块与单片机连接,单片机只接收指令不发出指令,所以不需要发送AT指令,单片机使用串口与蓝牙模块的TXD与RXD连接,使用ULN2003驱动步进电机正反转,采用一个按键模拟窗帘限位开关。系统采用简单的指令进行操作,发送“a”代表正转“b”代表反转“c”代表停止。亦可在聊天框里直接输出信息进行发送控制。电路采用一个三色的LED作为工作指示,红灯和绿灯代表电机正反转,蓝灯代表电路进入待机状态即停止工作,从而实现手机蓝牙控制窗帘开关及暂停。二、主要技术数据参数1、STC89C52单片机:工作电压5V;工作频率0~40MHz2、电源全部5V供电。3、蓝牙有效控制范围为40m左右。4、28BYJ-48步进电机主要技术参数:5、ULN2003步进电机驱动芯片是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。三、问题及解决办法在PC开发板上焊接电路时,要确保各个线路焊接正确,使焊锡的量适中,不能与邻近焊接点相连,以避免由于线路焊接错误造成短路等情况而不能实现预期结果。在电路焊接正确的情况下,步进电机也有可能只发生震动而不转动,这可能是与步进电机的本振频率有关,在程序中需要调试,以找到适合的频率。有的步进电机不能正常工作,这需要更换电机以取得预期效果。四、手机端APP打开智能手机到应用商城搜索“蓝牙串口”如图所示:也可采用资料附带的APP复制到手机里安装应用。五、蓝牙模块与手机连接初次上电蓝牙模块的LED会快速闪烁,此时打开安装好的手机“蓝牙串口”应用如图所示:此时在屏幕的上方会显示蓝牙串口“未连接”的提示,点击右边的连接开始搜索蓝牙模块,如图所示:此时会搜索到一个名为HC-05的蓝牙模块,点击连接,输入配对密码“1234”即可成功连接蓝牙模块,如图所示:连接成功后蓝牙模块由快闪变为慢闪,手机屏幕上方会提示连接到“HC-05”如图所示:向右滑动屏幕找到键盘界面,长按按钮方块进行编辑,输入示例信息,如图所示:编辑好后按下确定即可,此时按下手机的按钮电路便会根据指示动作。六、元件清单电阻1K1个电阻R103/10K1个电容25V/10UF1个电容0.1UF1个电容22PF2个DC插头1个四角按键2个三色共阳LED1个ULN2003驱动芯片2个5v步进电机(四相五线)2个5v步进电机插座2个蓝牙模块1个USB电源线1个11.0592M晶振1个STC12C5A60S2或STC89C52单片机1个导线若干七、实物图八、电路原理图九、源程序//#include"STC89C52.h"#include<reg52.h>#include"main.h"#include"delay.h"unsignedcharcodeFFW[5]={0x03,0x06,0x0c,0x09};//四拍正传unsignedcharcodeREV[8]={0x01,0x02,0x04,0x08};//四拍反转unsignedchartable[]={0};unsignedintcount=0,i,ii;voidmain(){UartInit();//for(ii=0;ii<512;ii++)//正转一圈需要512*8=4096*5.625/64=360度//{//for(i=0;i<4;i++)//{//P2=FFW[i];//DelayNms(100);//}//}Key=1;LED_STOP=0;while(1){for(i=0;i<5;i++){P2=FFW[i];DelayNus(400);}//Run();//if(Key==0)//{//DelayNms(1);//if(Key==0)//{//table[0]='c';//do{//do{//Run();//}while(Key==0);//DelayNms(1);//}while(Key==0);//}//}}}voidRun(){unsignedchari;switch(table[0]){case'a':{LED_FFW=0;LED_REV=1;LED_STOP=1;for(i=0;i<4;i++){P2=FFW[i];DelayNms(10);}}break;case'b':{LED_FFW=1;LED_REV=0;LED_STOP=1;for(i=0;i<4;i++){P2=REV[i];DelayNms(10);}}break;case'c':{LED