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