lpm19930028 发表于 2013-7-3 17:28:58

关于zlstone大神小车源程序的几点疑惑

大家好,小弟我是一名在校大三学生,目前正在自己制作两轮平衡小车。在论坛上找到zlstone大神的代码之后,有几个地方不是很明白,希望大家能帮我解决一下,谢谢了。
       在他的程序中有一段是关于闭环测速的电机编码器的,利用寄存器接收的脉冲数计算电机转速,为什么计算左右轮速时左右轮加减1的时候判断不一致呢?
      if (0==(PINB&BIT(0)))
        {
                speed_real_LH-=1;
        }
        else
        {
                speed_real_LH+=1;
        }
       if (0==(PINB&BIT(1)))
        {
                speed_real_RH+=1;
        }
        else
        {
                speed_real_RH-=1;
        }
还有一个问题就是他最后给定左右轮子的PWM值时:speed_output_RH = PWM - Turn_Need;speed_output_LH = - PWM - Turn_Need ,在不考虑转弯量 Turn_Need的情况下,他的左右轮PWM值是相反的(一正一负);再结合上他的PWM输出函数:void PWM_output (int PWM_LH,int PWM_RH)
{
        if (PWM_LH<0)
        {
                PORTD|=BIT(6);
                PWM_LH*=-1;
        }
        else
        {
                PORTD&=~BIT(6);
        }
       
        if (PWM_LH>252)
        {
                PWM_LH=252;
        }
       
       
        if (PWM_RH<0)
        {
                PORTD|=BIT(7);
                PWM_RH*=-1;
        }
        else
        {
                PORTD&=~BIT(7);
        }
       
        if (PWM_RH>252)
        {
                PWM_RH=252;
        }
      OCR1AH=0;
        OCR1AL=PWM_LH;                        //OC1A输出;
       
        OCR1BH=0;
        OCR1BL=PWM_RH;                        //OC1B输出;
       
}   这样小车的左右轮子不是一直都是在按着相反的方向转嘛?这里我不太懂,希望大家能给我解释一下,谢谢了。

rantingting 发表于 2013-7-3 17:32:46

不一致? 你搞错了吧

lpm19930028 发表于 2013-7-3 19:37:15

rantingting 发表于 2013-7-3 17:32 static/image/common/back.gif
不一致? 你搞错了吧

额?可能是我没有真正理解,你能给我讲一下嘛?谢谢了

leexy 发表于 2013-7-3 19:58:33

lpm19930028 发表于 2013-7-3 19:37 static/image/common/back.gif
额?可能是我没有真正理解,你能给我讲一下嘛?谢谢了

哥们,实践出真知啊
电机正反转等问题最好实测一下就知道了

zyw19987 发表于 2013-7-4 06:33:33

我猜是这样的:电机电路是一样的,而在车上两个电机是面对面或者屁股对屁股,也就是说同样的控制电机在车上的转动方向是相反的,所以软件上控制是相反控制才会保证在车上是同向旋转。

leexy 发表于 2013-7-4 09:37:38

zyw19987 发表于 2013-7-4 06:33 static/image/common/back.gif
我猜是这样的:电机电路是一样的,而在车上两个电机是面对面或者屁股对屁股,也就是说同样的控制电机在车上 ...

嗯,正解啊~~~
电机转动方向、编码器方向等问题最好在调试的时候确认好,不然控制跟实际需要相反,永远不能实现平衡

lpm19930028 发表于 2013-7-4 13:32:46

zyw19987 发表于 2013-7-4 06:33 static/image/common/back.gif
我猜是这样的:电机电路是一样的,而在车上两个电机是面对面或者屁股对屁股,也就是说同样的控制电机在车上 ...

嗯,谢谢你,这个原因之前我也想到过。因为硬件暂时还没到位,所以我也只能先在软件上琢磨了,谢谢你的提示。

kimiyang 发表于 2013-7-4 15:27:11

你要左右电机的PWM值同号也可以, 硬件上把其中一个电机线交换下。 ,但到底交换哪个电机 有讲究。。

lpm19930028 发表于 2013-7-4 20:45:08

kimiyang 发表于 2013-7-4 15:27 static/image/common/back.gif
你要左右电机的PWM值同号也可以, 硬件上把其中一个电机线交换下。 ,但到底交换哪个电机 有讲究。。 ...

嗯,好的,谢谢啦

好人不学坏 发表于 2013-7-5 15:01:14

代码是对的,连电机时要注意其中有个电机是反向按的,鉴定完毕。
页: [1]
查看完整版本: 关于zlstone大神小车源程序的几点疑惑