打印
[51单片机]

关于小车通过光电传感检测前进距离的精确问题?

[复制链接]
1507|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
侠过留香|  楼主 | 2014-5-5 12:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 侠过留香 于 2014-5-6 11:30 编辑

我最近在做一个关于小车的项目,要求在黑线十字路口处能实现精确左转和右转90度。我是采取的是检测到全黑时,小车停下,然后再前进大约10cm的距离,再左转或者右转。   前进10厘米的方法是采用判断光电传感器的脉冲个数来的

void exint0() interrupt 0       //INT0中断入口
{
        MP++;
}
伪代码如下
前进
MP=0;                           //MP清0
while(MP<90);
刹车
左转/右转

这样大部分还是挺准的,但是有的时候就会冲出去大概十多厘米,导致转弯不好

如何才能让稳定性提高呢?                                                         

相关帖子

沙发
侠过留香|  楼主 | 2014-5-5 12:24 | 只看该作者
自顶

使用特权

评论回复
板凳
侠过留香|  楼主 | 2014-5-5 12:24 | 只看该作者
求解

使用特权

评论回复
地板
侠过留香|  楼主 | 2014-5-5 17:51 | 只看该作者
不能沉啊

使用特权

评论回复
5
df_flying| | 2014-5-5 21:13 | 只看该作者
几个方面您参考下吧:1,加上串口数据,看看冲出去时。MP的计数响应情况,可以在中断里将MP发送出来,发现问题具体出在哪里。2,硬件上,增加对脉冲的处理,或者说是矫正吧,或者用硬件计数器代替外部中断等。3,增加光电传感器精度,以用来误差的减小,或容错的增加。

使用特权

评论回复
6
侠过留香|  楼主 | 2014-5-6 11:30 | 只看该作者
df_flying 发表于 2014-5-5 21:13
几个方面您参考下吧:1,加上串口数据,看看冲出去时。MP的计数响应情况,可以在中断里将MP发送出来,发现 ...

加上串口后,每次都是到100的时候就停了。就算冲出去了,也差不多是100,不知道是什么问题呢

使用特权

评论回复
7
侠过留香|  楼主 | 2014-5-6 16:42 | 只看该作者
终于找到问题了,是由于其他的中断影响,在while之前关掉中断,停车后再开中断就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

0

粉丝