找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机循迹车的一点程序问题(环岛)

查看数: 3959 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-8-10 16:57

正文摘要:

先贴本人自己写出来的程序吧。 问题是在环岛扫到全黑的情况与全黑停车情况的判断,车子扫到全黑时总是突然开始倒车并附有卡顿挺迷的。希望大家能给个好建议。 PS.如果轮子转速太快红外测速无法记录外部中断 ...

回复

ID:560467 发表于 2019-8-16 21:26
随便说说:其实这种路线使用4个红外循迹模块的话是可以更加容易的实现区分环岛和停车点的。使用4个传感器全部放在车头排放位置类似于色子上的4,只不过前面的两个稍微宽一些
ID:377268 发表于 2019-8-12 00:55
代码问题有点多。首先你的PWM频率太低了吧,20Hz?,电机控制起码是几千Hz的这样你走起来就会很抖的,还有就是PWM电平反转的判断语句,也不对的能用可以说是巧合,C的if判断不能这么写,然后就是你的最后一块儿代码逻辑不对。你的停车线比较宽,用计时的方法判断是进环岛还是停车可以,但是代码写得很不对,你要在检测到双黑线后开始time计数,继续前进延时一段时间后再检测一次是不是全黑,是的话停车不是就继续循迹。最后,倒车这个我倒不确定,但是抖动就是你最后那块儿没写好。可能是抖着抖着自己后退了,跟你驱动频率太低也可能有关系。
ID:332444 发表于 2019-8-11 06:32
判断式应该是连续的,而不是单独的,如if(right2 == left2 == 0 && right1 == left1 == 1)。。else if(right2 == left2 == 0 && right1 == left1 == 1)这样;if(R_flag) xunji();这样试看
ID:590125 发表于 2019-8-10 21:11
xianfajushi 发表于 2019-8-10 19:59
随便说说,首先不要直接使用 int char 应使用unsigned int这样的;2逻辑简化这当然不是必要的,只是可以简 ...

R_flag 的判断内容要写些什么呢?是对红外的判断还是?
ID:503018 发表于 2019-8-10 20:55
随便说说,首先不要直接使用 int char 应使用unsigned int这样的;2逻辑简化这当然不是必要的,只是可以简化代码如 if(right2 == left2 == 0 && right1 == left1 == 1);3调用寻迹前添加判断R_flag
ID:332444 发表于 2019-8-10 19:59
随便说说,首先不要直接使用 int char 应使用unsigned int这样的;2逻辑简化这当然不是必要的,只是可以简化代码如 if(right2 == left2 == 0 && right1 == left1 == 1);3调用寻迹前添加判断R_flag这是猜测的。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表