您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 无线遥控小车设计-(修复的)
四川师范大学成都学院学生社团联合会通信协会电子工程协会第二届校园电子设计大赛报考书学生姓名伍长军班级08级汽电一班完成时间2011-4-30作品名称:无线遥控小车作品简介:遥控小车的结构体为三轮,后轮分别采用两个直流电机,前轮为自己做的一个万向轮,采用PWM技术实现小车速度和转向的控制,通过调节PWM的占空比来实现电机转速的调节。无线遥控模块可用多种方式实现,如:红外遥控,超声波遥控,无线电遥控等等。我这里采用是无线电遥控。作品名称:无线遥控小车系统设计方案:控制按键单片机按键编码无线发射无线接收按键解码单片机电机驱动工作原理简述:控制部分主要考虑按键的设计,遥控器上的6个控制键控制遥控车的运动,分别是:前进、后退、加速、向左、向右、停止。小车通过接受遥控器发来的信号来完成相应的动作。因此无线发射和无线接收模块就要实现6通道无线遥控。无线遥控采用的是遥控编码、解码集成芯片SC2262/SC2272为核心器件。它们是使用一种CMOS工艺制造的低功耗低价位通用编解码电路,SC2262/SC2272最多可有12位(A0~A11)三态地址端管脚(悬空、接高电平、接地电平),任意组合可提供531441地址码,SC2262最多可有6位(D0~D5)数据端引脚,设定的地址码和数据码从引脚17串行输出,可用于无线遥控发射电路。其中,发射芯片2262将载波振荡器、编译器和发射单元集成于一身,是发射电路变得非常简洁。2272是一种于2262配对的解码器,它也具有12位三态地址,共有531441种地址代码。只要任意选择其中一种,保证编码一致即可,因而具有很强的抗干扰能力。电机1电机2系统硬件原理图:发射部分原理图发射部分PCB图接收部分原理图接收部分PCB图电机控制部分原理图电机控制部分PCB图接收模块与小车实体发射模块程序及流程图:发射部分:系统开始系统初始化外部中断初始化硬件初始化等待中断发送部分流程图按键扫描中断入口计时停止发射按键控制编码计时开始发送部分中断服务程序流程图发送部分程序:#includereg51.h#defineucharunsignedchar#defineuintunsignedintsbitqian=P1^0;sbithou=P1^1;sbitzuo=P1^2;sbityou=P1^3;计时到0.2S?中断返回sbitzhan=P1^4;sbitting=P1^5;sbitD0=P0^0;sbitD1=P0^1;sbitD2=P0^2;sbitD3=P0^3;bitsend_flag=0;uintgvalue=0;uintsum=0;uinttime=0;uintData[10]={0x0a,0x09,0,0,0,0,0,0,0,0x0f};voidinit_timer(void);voidInit(void);voidScanKey(void);voidsend_data(void);//主函数voidmain(){Init();while(1){ScanKey();send_data();}}//定时器初始化、数据初始化voidinit_timer(void){TMOD=0x01;TH0=0x3c;TL0=0xb0;ET0=1;TR0=1;EA=1;}voidInit(void){init_timer();qian=0;hou=0;zuo=0;you=0;zhan=0;ting=0;}//按键扫描voidScanKey(void){if(qian==1){Data[2]=0x0b;gvalue=0011;}if(hou==1){Data[2]=0x0c;gvalue=0101;}if(zuo==1){Data[2]=0x0d;gvalue=0110;}if(you==1){Data[2]=0x0e;gvalue=1001;}if(zhan==1){Data[2]=0x05;gvalue=1010;}if(ting==1){Data[2]=0x07;gvalue=1100;}}//发送数据帧的组装zu_data(uintgvalue){uinti=0,swei=0;for(i=6;i=3;i--){swei=gvalue%10;Data[i]=swei;gvalue=gvalue/10;}for(i=0;i7;i++){sum=sum+Data[i];}for(i=8;i=7;i--){Data[i]=sum%10;sum=sum/10;}sum=0;}//发送数据voidsend_data(void){uintu;if(send_flag==1){EA=0;if(!(gvalue==0)){zu_data(gvalue);if(u10){D0=Data[u]/2;D1=Data[u]/4;D2=Data[u]/8;D3=Data[u]/16;u++;}else{u=0;gvalue=0;}}send_flag=0;EA=1;}}//定时中断voidtimer_0()interrupt1{TH0=0x3c;TL0=0xb0;time++;if(time==4){time=0;send_flag=1;}}接收部分:初始化读入解码信号根据信号处理前进后退向右加速停止去抖处理向左接收到信号接收部分流程图程序:#includereg51.h#defineucharunsignedchar#defineuintunsignedintsbitD0=P0^0;sbitD1=P0^1;sbitD2=P0^2;sbitD3=P0^3;sbitENA=P2^2;sbitENB=P2^5;sbitIN1=P2^3;sbitIN2=P2^4;sbitIN3=P2^6;sbitIN4=P2^7;bitqian_flag,hou_flag,zuo_flag,you_flag,zhan_flag,ting_flag;uintRec[10]={0};uintflag=0;uintsum=0;uintt;uintpwm_num=0;uinttime_num=0;voidInit(void);voidreceive_data(void);voidmanage_data(void);voidCarAction(void);voidmain(){Init();while(!ting_flag){receive_data();manage_data();CarAction();}}voidinit_timer(void){TMOD=0x12;TL0=0x38;ET0=1;TR0=1;TH1=0x3c;TL1=0xb0;ET1=1;TR1=1;EA=1;}voidInit(void){init_timer();qian_flag=0;hou_flag=0;zuo_flag=0;you_flag=0;zhan_flag=0;ting_flag=0;ENA=1;ENB=1;}//接收数据voidreceive_data(void){uintD_sum=0;uintD0_data=0;uintD1_data=0;uintD2_data=0;uintD3_data=0;D0_data=D0;D1_data=D1;D2_data=D2;D3_data=D3;D_sum=D0_data+D1_data*2+D2_data*4+D3_data*8;if(D_sum==0x000a){flag=1;t=0;}if(flag==1){Rec[t++]=D_sum;flag=1;}if(Rec[t]==0x0f){flag=0;t=0;}}//数据处理voidmanage_data(void){uinti;sum=0;for(i=0;i7;i++){sum=sum+Rec[i];}if((sum==(Rec[7]*10+Rec[8]))&Rec[9]==0x0f){sum=0;switch(Rec[2]){case0x0b:qian_flag=1;break;case0x0c:hou_flag=1;break;case0x0d:zuo_flag=1;break;case0x0e:you_flag=1;break;case0x05:zhan_flag=1;break;case0x07:ting_flag=1;break;}}}//小车运动voidCarAction(void){if(qian_flag==1){IN2=0;IN3=0;if(pwm_num==20){IN1=1;IN4=1;}if(pwm_num==100){IN1=0;IN4=0;pwm_num=0;}}if(hou_flag==1){IN1=0;IN4=0;if(pwm_num==70){IN2=1;IN3=1;}if(pwm_num==100){IN2=0;IN3=0;pwm_num=0;}}if(zuo_flag==1){IN2=0;IN3=0;if(pwm_num==20){IN4=1;}if(pwm_num==50){IN1=1;}if(pwm_num==100){IN1=0;IN4=0;pwm_num=0;}}if(you_flag==1){IN2=0;IN3=0;if(pwm_num==20){IN1=1;}if(pwm_num==50){IN4=1;}if(pwm_num==100){IN1=0;IN4=0;pwm_num=0;}}while(zhan_flag){receive_data();manage_data();}}voidtimer_1()interrupt3{TH0=0x3c;TL0=0xb0;time_num++;if(time_num==4){time_num=0;qian_flag=0;hou_flag=0;zuo_flag=0;you_flag=0;zhan_flag=0;ting_flag=0;}}
本文标题:无线遥控小车设计-(修复的)
链接地址:https://www.777doc.com/doc-4852141 .html