51单片机四驱无线遥控小车制作详解_第1页
51单片机四驱无线遥控小车制作详解_第2页
51单片机四驱无线遥控小车制作详解_第3页
51单片机四驱无线遥控小车制作详解_第4页
51单片机四驱无线遥控小车制作详解_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机四驱无线遥控小关制作详解小车参数:控制键 5个:前进、后退、左转、右转、停止;有效距离200米;速度:我想遥控小车大家都玩过,网上也有各种DIY小车的制作详解,我做的这个遥控小车和其他的作品大同小异, 但作为单片机设计,这次设计我主要强调单片机控制,就是说,这个小车是由单片机控制的,这次我把单片机按键发送程序、无线模块使用、电机驱动作为本教程的核心内容。一硬件组装 1小车运动部分 此图是我师弟组装好的,请大家作为参考 所需工件:直流电机 4个,L293D电机驱动模块,蓄电池一块,车身底盘 说明:车身底盘大家根据自己的购买力自行购买,蓄电池也是,至于L293D模块,淘宝上卖的比较贵,不

2、过我用的就是成品模块,效果非常好,钱不多的同学可以自己买芯片,自制模块,原理很简单,官方资料是很详细的;或者改为继电器控制都可以,具体看自己的 实际购买力。用模块的好处是,模块可以输出5V电源给系统供电,详细请参考淘宝网。如果你买的是现成的底盘,那就和我的一样了,组装实在是没啥可说的,把电机 固定上去就是,不行?别开玩笑了,小学生都会的!至于想自己做底盘的,我想说,要搞结 实点,咱这次的小车马力是很足的,因为有电机驱动,速度比较快 (不带减速齿轮的底盘一定要小心,速度非常的快),后劲也足,不小心撞墙很正常,所以不好的底盘就得小心了!组装好后,就是电机和驱动模块的接线了,下面我就详细的说一下 L

3、293D模块的使用:L293D是专门的电机驱动芯片,工作电压5V,驱动电压输入可达 36V ,输出电流正负600ma , 4个控制端,4个输出端,原理如图:rA31,2EN CENIVEN >6J 2A 103An3.4EN厂15o,3¥EP 'elecfanS'd4 J m 炭操乱其中A为输出控制端,丫为输出控制端,1A即控制1Y,以此类推。1, 2EN 3,4EN需要短接,芯片最大工作电压不得超过7V。封装图:K2EN 1b16vCCiA151Y144YHEAT SINK ANO f 413 HEAT SINK ANOGROUND " f 2Y f

4、5 6j f GROUND 3Y2A 7103AVCC2 E8elecjcfam电3或恍立Vcc1接工作电压,5V, Vcc 2接电机的驱动电源,一般来说,这个电压要比5V高,我用的是1 2 V蓄电池,就把12v的正极接到VCC2 ,要记住的是,芯片、单片机、蓄 电池电源是需要共地的,不要觉得你电机是1 2V,单片机控制部分是5 V就把电源完全独立开来,正极是完全独立的没错,但是GND (负极)都必须是接在一起的。驱动芯片与电机的接法:例:左边前后轮:1丫接电机红线,2Y接电机黑线,左边前轮电机3Y接电机红线,4Y接电机黑线,左边后轮电机前进指令:1A=1 (输出 12V) , 2A=0 (输

5、出 0V) , 3A=1 (输出 12V) , 4A=0 (输出0V)后退指令:1A=0 (输出 12V) , 2A=1 (输出 0V) , 3A=0 (输出 12V) , 4A=1 (输出0V)右边的和左边的接法是完全一样的注意:前进和后退并不是绝对的,因为是直流电机,不刻意的强调正负极,就看 你电机是怎么接线的,结果完全可以与我的相反。不过一定要保证电机接线的统一性,不能随意,不能说前轮接的是顺时针线序,后轮是逆时针线序,如果买的电机连接线不带颜色, 一定要自己测好了那种接法是顺时针的,哪种是逆时针,否则前轮前进后轮后退,很摧残电机的,或者左右边的 2对电机转动方向不统一,导致编程麻烦。芯

6、片默认输出0V ,所以在没有程序的时候,大家不需要担心电机会转动。一个 芯片只能控制2个电机,右边的再接个芯片就可以了,网上卖的模块都是2个驱动芯片的,刚刚好够4个电机。买模块的好处就是拿来可以直接接线,而且模块上有标号,不必担心 接错,希望初学者还是买模块,贵是贵了,但是速度有保证的!驱动模块如图:接好之后,我就说下小车的转动方式:前进后退就是4个电机同时的正转、反转;左转弯和有转弯有 2种方式:A一边转动一边不转,B一边正向转动一边反向转动,这两种 各有个的好处,各位可以根据自己的实际情况来确定转弯的方式,不同车的底盘效果肯定是不一样的,转弯的方式是程序控制的,本程序是B种方式。我的小车图

7、:这种电机是减速的,所以不会很快,如果是直接电机带动的轮子,再用12V电源的话,那速度就非常快了,模块的输出直接连接电机电源线,输出根据标号或根据程序接入到单片机上单片机的接线:如图:这是我的最小系统板,全部引出IO,带板载USB下载功能,P0 口输出接了 8路流水灯(有选通开关),这样设计板子是为了P0 口做输出时专门看输出状态的。板子是我们工作室自己设计的,我们所有的作品调试都是建立在它的基础上,网上也有的卖这种 USB下载板,40元左右吧!我这个人比较懒,用的是电机驱动模块,L293D的输入是有标号的,18直接按照顺序接到P1.0P1.7就可以了,说到这里,我不得不说一下,单片机的接线是

8、非常自 由的,因为是程序控制,无法就是改改端口而已,我只根据我的程序来说明接线,有基础的可以自己设计!驱动芯片和电机连接好后,就是要把线固定好,留出要与单片机连接的8跟控制线。也要注意给无线模块留一个小空间。 无线模块解说:我们工作室一直使用的是 433无线串口模块,具体型号和价格我会附在清单表里, 现在我说下它的性能、 这种无线模块最大的好处就是有较强的抗干扰性,2个模块直接可以设置ID ,只有在一个ID号下的个模块才可以通信,而且可以实现一对多通信;而且这种模块是无需编程的,直接把数据发送到串口即可,模块会自动调制解调, 就目前使用的情况而言,还没发现它有调制解调错误的时候,可以说,在数据

9、传输上,这个模块误码率还是极低的,不过需要注意的是,模块 2次接收(发送)之间的间隔要大于200ms ,这是非常重要的一个参数,如果想做高速数据传输的朋友请慎重选用!(本段文字来源于淘宝睿迪无线模块手册,本人也已经上传,也请读者尊重该店的著作权)。模块的接线还是蛮简单的,电源2根线,数据线2根:TX (接单片机RX)、RX(接单片机TX),关于无线模块的设置方案,请参考淘宝睿迪无线XL02-232AP1型号的资料手册。模块在通电的一瞬间红灯绿灯同时会闪一下,然后熄灭,此时进入待机状态,模块发送数据时,红灯亮;接收数据时,绿灯亮。组装好之后的图:我用是12v蓄电池,接到驱动模块后,模块的5V输出

10、又可以直接给无线模块和最 小系统部分供电。虽然看起来比较笨重,但是12V的电源,与一般的小车在速度和耐力上,都有了本质的提高!遥控部分:hex代码,仿真提供16进制文件源代码:;接收程序ORG 0 ;程序起始地址SJMP STAR ;跳转到主程序ORG 30H ;串口中断地址sjmp loop ;跳转到中断服务程序STAR :MOV SP , #5FH ;设置堆栈MOV SCON , #50H ;串行数据格式(详情请参考 51手册)MOV TMOD , #20H ;定时器工作方式(请参考 51手册)MOV PCON , #0 ;波特率不倍速(请参考 51手册)MOV TH1 , #0fdH ;

11、设置波特率在 9600MOV TL1 , #0fdH ;设置波特率在 9600SETB EA ;开起中断clr ET1 ;关闭定时1中断SETB ES ;开起串口中断SETB TR1 ;启动定时器1mov a , #0 ;mov p1 , a ;设置初始值,即开机 p1输出00h小车不动作main :mov p1 , a ;把a值给p1端口sjmp main ; 无限循环 main 程序LOOP :jnb ri , $ ;判断接收位是否接收完clr ri ;接收完后清空接收位mov a , sbuf ;发送的数据给 areti ;返回后,a的值就会给p1END;发送程序ORG 0 ;程序起始地

12、址SJMP START ;跳转到主程序ORG 30H ;串口中断地址START :MOV SP , #5FH ;设置堆栈MOV TMOD , #20H ;定时器工作方式(请参考 51手册)MOV PCON , #0 ;波特率不倍速(请参考 51手册)MOV SCON , #50H ;串行数据格式(详情请参考 51手册)MOV TH1 , #0fdH ;设置波特率在 9600MOV TL1 , #0fdHsetb EA ;开起中断clr ET1 ;关闭定时1中断setb ES ;开起串口中断SETB TR1 ;启动定时器1main :lcall kcs ;调用按键扫描程序jnz key ;有键按

13、下则跳转到 key程序段sjmp main ; 无限循环 main 程序kcs :mov pl , #0ffh ;p1 给初值mov a , p1 ;p1的数值给 acpl a ;取反aanl a , #0ffh ;与运算retkey :lcall delay ;软件延时程序,按键去抖jb acc.0 , send1jb acc.1 , send2jb acc.2 , send3jb acc.3 , send4jb acc.4 , send5retDELAY :MOV R5 , #20D1:MOV R6 , #10D2:MOV R7 , #100DJNZ R7 , $DJNZ R6 , D2DJNZ R5 , D1retsend1 :mov r1 , #10101010b ;前进指令sjmp sendsend2 :mov

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论