请选择 进入手机版 | 继续访问电脑版

喵呜实验室社区

 找回密码
 立即注册
搜索
查看: 1364|回复: 1

超声波避障第一次避障成功后一直原地转圈什么原因?

[复制链接]

1

主题

3

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2021-11-6 10:57:42 | 显示全部楼层 |阅读模式
      我自己画的板子,但是引脚连接完全按照喵呜的,电路唯一不同的地方就是超声波Trig由PA2改成了PA5,然后去掉了电池电量检测引脚。程序上我更是没有其他变动,改了超声波的引脚为PA5,注释掉了电池电量检测的代码,其他的都没动。具体现象就是其他功能都很正常,包括超声波跟随也是可以的,超声波测距数据可以灵敏地传到屏幕上,但开启超声波避障模式之后,它会向前行驶,第一次遇到障碍物会右转,然后就一直原地右转转圈,即使周围已经没有了任何障碍物,它还是转圈,在转圈的时候我也看了屏幕上的超声波距离,超声波仍然正常工作啊,但是按照程序代码距离超过20cm不就应该往前直行了嘛。我也换了新的超声波模块试了试现象还是一样,超声波肯定是连接好的,电源供电也没问题,问题可能出在哪呢,难道源代码还需要其他地方改动吗?求大佬指教可能的原因以及解决排查方案,感恩不尽!盼回复!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

3

帖子

33

积分

新手上路

Rank: 1

积分
33
 楼主| 发表于 2021-11-8 21:49:28 | 显示全部楼层
问题已经解决,不知道在哪里删帖子。。。    问题出在:我终于排查到了编码器的问题!  有一个轮子的编码器没有工作,没有焊好。大家遇到类似问题一定要看看编码器有没有正常工作!
else if(mode == 1)
        {
                if((Distance >= 0) && (Distance<= 20))
                {//右转750个脉冲计数,转弯角度约为90度
                        Steer(5, 0);
                        g_iLeftTurnRoundCnt = 750;
                        g_iRightTurnRoundCnt = -750;
                }
                if((g_iLeftTurnRoundCnt < 0)&&(g_iRightTurnRoundCnt > 0))
                {
                        Steer(0, 4);
                }
        }

超声波避障的代码里主要是依靠编码器判断是否第一次避障完成并进行直行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|喵呜实验室社区 ( 粤ICP备15014207号 )

GMT+8, 2022-8-15 03:40 , Processed in 0.162233 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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