课程设计:基于C52单片机的循迹小车 |
您所在的位置:网站首页 › 基于嵌入式的智能小车的代码 › 课程设计:基于C52单片机的循迹小车 |
目录 1.硬件设计 (1)电机驱动模块 (2)红外避障与循迹模块 2.软件设计 (1)电机驱动模块 (2)循迹检测模块 (3)PWM模块 1.硬件设计 (1)电机驱动模块线路连接 J10-EN1接C52-P1.4 //EN1为左电机的使能端,只有当EN1为1时,左电机才能启动 J10-EN2接C52-P1.5 //EN2为右电机的使能端,只有当EN2为1时,右电机才能启动 J10-IN1接C52-P1.2 //IN1控制左电机反转,当IN1为1,IN2为0时,左电机反转 J10-IN2接C52-P1.3 //IN2控制左电机正转,当IN2为1,IN1为0时,左电机正转 J10-IN3接C52-P1.6 //IN3控制右电机正转,当IN3为1,IN4为0时,左电机正转 J10-IN4接C52-P1.7 //IN4控制右电机反转,当IN4为1,IN3为0时,左电机反转 电机驱动模块原理图 ![]() 线路连接 J11-P3.2接C52-P3.2 //P3.2为循迹右灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-P3.3接C52-P3.3 //P3.3为循迹左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-P3.4接C52-P3.4 //P3.3为避障左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-P3.5接C52-P3.5 //P3.3为避障左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-VCC接电源 J11-GND接地 红外避障与循迹检测模块原理图 检测原理:红外线发射装置发射红外线,由于平面会反射红外线,红外线接收装置就会收到反射回来的红外线,此时指示灯亮,端口输出0;而检测装置下面有黑色时,黑色会吸收掉红外线,接受装置就接受不到红外线,指示灯灭,端口输出1.因此,当检测装置下面一定距离内没有反射物时,接受装置收不到返回的红外线,也会被认为是检测到了黑色。 首先定义端口,方便后续使用 通过控制左右电机的正反转来实现小车的前进,转弯,旋转等操作 例如:当左电机停止转动,右电机正转,即可实现小车左转的操作 当左电机反转,右电机正转,即可实现小车逆时针旋转的操作 1.控制小车前进的函数fornt() 2.控制小车左转的函数left() 3.控制小车右转的函数right() 4.控制小车逆时针旋转的函数ni() 5.控制小车顺时针旋转的函数shun() 6.控制小车停止的函数stop() 首先定义端口,方便后续使用 通过红外线检测是否有黑色,从而驱动小车进行下一步运动 如果左灯为0,右灯为1,说明左边出了黑色轨道,此时应该右转,使小车回到轨道上; 如果左灯为1,右灯为0,说明右边出了黑色轨道,此时应该左转,使小车回到轨道上; 如果左灯为1,右灯为1,说明两边都在黑色轨道上,此时应该直行; 如果左灯为0,右灯为0,说明两边都出了黑线轨道,此时应该旋转,寻找轨道 根据红外线检测的结果执行相应的操作; 当小车左转时,将k赋值1,以防脱轨后寻轨,因为如果小车左转时脱轨,说明轨道在小车的左侧,此时逆时针寻轨能够最快速的找到轨道; 同理,小车右转时,将k赋值2,如果小车右转脱轨,说明轨道在小车右侧,此时顺时针寻轨能最快速找到轨道。 最后,由于小车速度过快,经常脱轨之后就冲出了可寻轨的范围,所以这里采用PWM技术来调整小车的车速。 首先是定时器的设置,这里只需要用到一个中断,不需要设置中断优先级,默认即可,定时器使用方式2,因为方式2有重装功能,计时最准确快捷。 设置占空比,此处time为全局变量,每进入一次中断函数,time就加一,而只有time=75时才会有相应操作,而time=100时又会停止相应操作,就是说,电机真正响应的时间,只有25%,速度也只有原来的25%,可以通过改变占空比来改变速度。这里占空比要尽可能大,使小车速度减慢,不然容易脱离可寻轨范围。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |