搜索
bottom↓
回复: 9

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

[复制链接]

出0入0汤圆

发表于 2013-7-3 17:28:58 | 显示全部楼层 |阅读模式
大家好,小弟我是一名在校大三学生,目前正在自己制作两轮平衡小车。在论坛上找到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输出;
       
}     这样小车的左右轮子不是一直都是在按着相反的方向转嘛?这里我不太懂,希望大家能给我解释一下,谢谢了。

出0入0汤圆

发表于 2013-7-3 17:32:46 | 显示全部楼层
不一致? 你搞错了吧

出0入0汤圆

 楼主| 发表于 2013-7-3 19:37:15 | 显示全部楼层
rantingting 发表于 2013-7-3 17:32
不一致? 你搞错了吧

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

出0入0汤圆

发表于 2013-7-3 19:58:33 | 显示全部楼层
lpm19930028 发表于 2013-7-3 19:37
额?可能是我没有真正理解,你能给我讲一下嘛?谢谢了

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

出0入0汤圆

发表于 2013-7-4 06:33:33 | 显示全部楼层
我猜是这样的:电机电路是一样的,而在车上两个电机是面对面或者屁股对屁股,也就是说同样的控制电机在车上的转动方向是相反的,所以软件上控制是相反控制才会保证在车上是同向旋转。

出0入0汤圆

发表于 2013-7-4 09:37:38 | 显示全部楼层
zyw19987 发表于 2013-7-4 06:33
我猜是这样的:电机电路是一样的,而在车上两个电机是面对面或者屁股对屁股,也就是说同样的控制电机在车上 ...

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

出0入0汤圆

 楼主| 发表于 2013-7-4 13:32:46 | 显示全部楼层
zyw19987 发表于 2013-7-4 06:33
我猜是这样的:电机电路是一样的,而在车上两个电机是面对面或者屁股对屁股,也就是说同样的控制电机在车上 ...

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

出0入0汤圆

发表于 2013-7-4 15:27:11 | 显示全部楼层
你要左右电机的PWM值同号也可以, 硬件上把其中一个电机线交换下。 ,但到底交换哪个电机 有讲究。。

出0入0汤圆

 楼主| 发表于 2013-7-4 20:45:08 | 显示全部楼层
kimiyang 发表于 2013-7-4 15:27
你要左右电机的PWM值同号也可以, 硬件上把其中一个电机线交换下。 ,但到底交换哪个电机 有讲究。。 ...

嗯,好的,谢谢啦

出0入0汤圆

发表于 2013-7-5 15:01:14 | 显示全部楼层
代码是对的,连电机时要注意其中有个电机是反向按的,鉴定完毕。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 16:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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