标题: 请问c51小车怎样通过延时函数控制直流电机转弯90度,或者不用延时,应怎样实现? [打印本页]

作者: wqqdwdd    时间: 2018-8-23 13:08
标题: 请问c51小车怎样通过延时函数控制直流电机转弯90度,或者不用延时,应怎样实现?
不要求精度高,只想知道具体的思路,谢谢各位大佬了。
作者: 1984528951    时间: 2018-8-23 15:15
这个受外界干扰比较大如果有固定的九十度轨迹可以用外设来控制,比如黑线循迹使用红外线传感器控制
作者: 一波三折    时间: 2018-8-23 16:04
可以先让一边电机停止同时另一边转动,这样就可以实现转弯,但是转过多少度跟延时时间有关,所以需要自己测试调节
作者: 达达达    时间: 2018-8-24 09:41
慢慢调延时咯,也用不了多久的,我是输出60%占空比的PWM,一个轮子向前转,一个轮子向后转,这样快多了,差不多90°就可以了
作者: yang阳    时间: 2018-8-24 10:08
首先转弯可以通过一个电机停止,另一个电机转动。90度呢最好加外设,黑线固定路迹,红外感应,控制电机转动停止
作者: armboy    时间: 2018-8-24 10:18
可以考虑使用陀螺仪。陀螺仪输出的是角速度,把角速度积分(加起来)就能得到角度。这样程序就能知道小车转了多少度了。
作者: wqqdwdd    时间: 2018-8-25 09:05
本帖最后由 wqqdwdd 于 2018-8-25 10:10 编辑
达达达 发表于 2018-8-24 09:41
慢慢调延时咯,也用不了多久的,我是输出60%占空比的PWM,一个轮子向前转,一个轮子向后转,这样快多了,差 ...

while(1)
{
        run();
        delay();
        turnleft();
        delay();
}这个有什么问题吗?

作者: wqqdwdd    时间: 2018-8-25 09:06
达达达 发表于 2018-8-24 09:41
慢慢调延时咯,也用不了多久的,我是输出60%占空比的PWM,一个轮子向前转,一个轮子向后转,这样快多了,差 ...

你好 我可以加你QQ吗?
作者: hi-Slowly    时间: 2018-8-25 12:13
可以先让一边电机正转同时另一边反转,这样就可以实现转弯,但是转过多少度跟延时时间以及电机的转速有关,所以需要自己测试调节延时时间和电机的转速这两个参数
作者: hi-Slowly    时间: 2018-8-25 12:16
首先看你要转90度的弯度是多少,一边轮子正转一边轮子反转是原地转弯,我们平常大多数用到这种转弯方式,其他情况你可以自己测试,对于原地旋转这种情况你可以先让一边电机正转,同时另一边反转,这样就可以实现转弯,但是转过多少度跟延时时间以及电机的转速有关,所以需要自己测试调节延时时间和电机的转速这两个参数
作者: 1179490767    时间: 2018-8-25 13:29
配置pwm好一些,延时函数不够用
作者: wqqdwdd    时间: 2018-8-25 14:13
hi-Slowly 发表于 2018-8-25 12:16
首先看你要转90度的弯度是多少,一边轮子正转一边轮子反转是原地转弯,我们平常大多数用到这种转弯方式,其 ...

while(1)
{
    run();
    delay();
    turnleft();
    delay();
}
作者: 代瑞    时间: 2018-8-25 14:46
大概90度的话,通过两个电机的差速就可以做到,当然要控制电机的延时。
作者: wqqdwdd    时间: 2018-8-25 22:04
代瑞 发表于 2018-8-25 14:46
大概90度的话,通过两个电机的差速就可以做到,当然要控制电机的延时。

while(1)
{
      run();
      delay();
      turnleft();
      delay();
}
这个代码有什么问题?

作者: 莫德尔    时间: 2018-8-28 11:36
第一  弄明白  你的90°是原地打转90°还是差速90°  或者是带有半径的90°   
第二  你不同的方式  速度肯定不一样  延时多长时间才能达到90°完全取决与你的车速




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1