版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include "reg52.H" #include "MyType.h" /=L298端口定义= sbit ENA = P36; /左轮驱动使能 sbit IN1 = P03; /左轮黑线(-) sbit IN2 = P04; /左轮红线(+) sbit IN3 = P05; /右轮红线(-) sbit IN4 = P06; /右轮黑线(+) sbit ENB = P37; /右轮驱动使能 /=PWM= #define PWM_COUST 100 /PWM细分等份100 uchar MOTO_speed1; /左边电机转速 uchar MOTO_sp
2、eed2; /右边电机转速 uchar PWM_abs1; /左边电机取绝对值后占空比 uchar PWM_abs2; /左边电机取绝对值后占空比 uchar PWM_var1=20; /左边电机直走速度 (不同的电机,此参数不同) uchar PWM_var2=20; /右边电机直走速度 uchar PWMAnd = 0; /PWM自增变量 /* 名称:motor(char speed1,char speed2); 功能:同时调节电机的转速 参数:speed1:电机1的PWM值;speed2:电机2的PWM值 speed>0.正转;speed<0.反转(-100100) 调用:e
3、xtern int abs(int val); 取绝对值 返回: /*/ void motor(char speed1,char speed2) /=左边电机= if (speed1>0) IN1 =0;IN2 =1;/正转 else if (speed1<0) IN1 =1;IN2 =0;/反转 /=右边电机= if (speed2>0) IN3 =1;IN4 =0;/正转 else if (speed2<0) IN3 =0;IN4 =1;/反转 /* 名称:motor_PWM(); 功能:PWM占空比输出 参数:无 调用:无 返回:无 /*/ void motor_
4、PWM () uchar PWM_abs1; uchar PWM_abs2; PWM_abs1=MOTO_speed1; PWM_abs2=MOTO_speed2; if (PWM_abs1>PWMAnd) ENA=1; /左边电机占空比输出 else ENA=0; if (PWM_abs2>PWMAnd) ENB=1; /右边电机占空比输出 else ENB=0; if (PWMAnd>=PWM_COUST) PWMAnd=0; /PWM计数清零 else PWMAnd+=1; /* 名称:void TIME_Init (); 功能:定时器初始化 指令: 调用:无 返回:无
5、 /*/ void TIME_Init () /=定时器T2初始化 PWM= TCON = 0x00; TMOD = 0x00; RCAPH = 0xff; /定时0.1ms RCAPL = 0x47; TH0 = 0xff; TL0 = 0x47; ET0 = 1; /定时器2中断开 TR0 = 1; /PWM定时器关,PWM周期为10ms /* 名称:void PWM_Time2 () interrupt 5 功能:T2中断,PWM控制 参数: 调用:motor_PWM();/PWM占空比输出 返回: /*/ void PWM_Time2 () interrupt 5 TR2 = 0; T
6、F2 = 0; ET2 = 0; /定时器0中断禁止 motor_PWM();/PWM占空比输出 ET2 = 1; /定时中断0开启 TR2 = 1; main() TIME_Init () ; motor(50,50);/左右电机的转速都是50 图 3-1 ST188实物图 图 3-2 ST188管脚图及内部电路通过ST188检测黑线,输出接收到的信号给LM324 ,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。图3-5 传感器模块电路图PWM1为1,PWM2为1时,Q1和Q2导通,节点1和节点2都是低电平,Q15和Q16导通,电机不工作。PWM1
7、为0,PWM2为0时,Q1和Q2导通,节点1和节点2都是高电平,Q13和Q14导通,电机不工作。PWM1为1,PWM2为0时,Q1导通但Q2不导通,节点1是低电平而节点2是高电平,Q14和Q15导通,电机逆时针转动。PWM1为0,PWM2为1时,Q1不导通但Q2导通,节点1是高电平而节点2是低电平,Q13和Q16导通,电机顺时针转动。图2-1 系统实现原理结构图系统初始化任务计数器归零是否完成全部任务?循迹子函数是否完成本次任务?结束开始NYNY图4-1主程序流程图小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,即进入判断处理程序,先确定4个探测
8、器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。循迹流程图如图4-2所示图4-2循迹流程图启动循迹模式探测黑线是否检测到黑线判断处理程序向左转Turn_left2向左转Turn_left1向右转Turn_right1向右转Turn_Lright2继续前进NY上电运行后,放到没有障碍物的空地上,小车直走。当前方没有障碍物的的时候车
9、就一直直走。如果前方遇到障碍物,则小车做左转运动。直至前方没有障碍物,这时小车恢复直走。 如果前方有障碍物的时候,左边同时也有障碍物,则小车右转。直至左边没有障碍物或者前方没有障碍物。这时小车恢复左转,或者直走。如果前面没有障碍物,则先执行直走。 如果前方,左方,右方均有障碍物,则小车后退,直至前方,左方,右方任一方向没有障碍,则此时小车开始以前方,左方,右方的优先级开始执行转向。也就是说如果前方没有障碍物,即使其他任意方向都有障碍则小车依然直走,如果前方有障碍,左边没有则右转,前方左方都有障碍,则小车右转。否则小车后退。避障及寻光源子程序 在没有检测到障碍物时调用光源检测子程序,寻找光源。当检测到障碍物时,控制小车左转一定时间后,再右转一定时间,再次判断前方是否有障碍物,直到没有障碍物的信号再调用寻光源子程序。绕障碍物程序流程图如图6。 外避障传感器,这是一种集发射与接收于一 体的光电传感器。检测距离可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025柳州工学院教师招聘考试题目及答案
- 2025江西科技学院教师招聘考试题目及答案
- 2025昌河职工工学院教师招聘考试题目及答案
- 内蒙特岗语文试题及答案
- 莱芜教招小学试题及答案
- 2026年山东交通职业学院公开招聘博士研究生(30名)建设考试参考试题及答案解析
- 2026四川成都银杏酒店管理学院人才招聘36人建设考试参考试题及答案解析
- 2026岚图汽车用户体验中心岗位招聘建设笔试备考题库及答案解析
- 2026贵阳观山湖人力资源服务有限公司教育教学人员招聘1人建设考试备考试题及答案解析
- 2026广东广州市增城区新塘中学编外聘用制教师招聘1人建设笔试模拟试题及答案解析
- 超星尔雅学习通《大学生健康教育(复旦大学)》2025章节测试附答案
- 统编版(2024)七年级下册历史课本问题参考答案
- 2024工程结构抗震混合试验方法标准
- DB5105T 51-2022 合江特晚熟荔枝生产技术规程
- 支气管哮喘护理查房课件
- 网络视频平台内容审核及监管手册
- 写人要凸显个性作文公开课获奖课件省赛课一等奖课件
- 与信仰对话 课件-2024年入团积极分子培训
- 2022年山东烟台中考满分作文《看见》2
- 【课件】开启科学探索之旅人教版物理八年级上学期
- 3.3服务业区位因素及其变化课件高中地理人教版(2019)必修第二册
评论
0/150
提交评论