注册 登录
查看: 354|回复: 5

关于电机控制的疑问和【可以去掉反相效果】的想法,各位看对不对

[复制链接]
发表于 2014-3-31 19:27:02 | 显示全部楼层 |阅读模式
刚刚那还正常的右电机测试了下,发现:
其一:
FTM_PWM_Duty(FTM0,FTM_CH3,30);可以让右电机正转
FTM_PWM_Duty(FTM0,FTM_CH4,30);可以让右电机反转
如果把上面的30占空比变成60或者70,发现电机转速加快,变为0则电机不转。
那是不是可以理解为:CH3控制电机正转CH4控制电机反转?
其二:
FTM_PWM_Duty(FTM0,FTM_CH3,70);
FTM_PWM_Duty(FTM0,FTM_CH4,30);
可以让右电机正转
FTM_PWM_Duty(FTM0,FTM_CH3,30);
FTM_PWM_Duty(FTM0,FTM_CH4,70);
可以让右电机正转
那是不是可以理解为:如果CH3的占空比大于CH4,则正转,小于则反转?或者说哪个通道占空比大则电机被那个通道控制?
其三:
void Speed_R_Back(uint32 Speed)         //右轮后退
{
   FTM_PWM_Duty(FTM0, FTM_CH3,Speed);
   FTM_PWM_Duty(FTM0, FTM_CH4,100);
   DELAY_MS(1000);
}
如果是这样的话,那么我调用Speed_R_Back(Speed)时确实是后退的,而且有反相效果。
可是如果是下面这样的话:
void Speed_R_Back(uint32 Speed)         //右轮后退
{
   FTM_PWM_Duty(FTM0, FTM_CH3,0);
   FTM_PWM_Duty(FTM0, FTM_CH4,Speed);
   DELAY_MS(1000);
}
那么我调用Speed_R_Back(Speed)时就没有反相效果了。
那是不是可以理解为:这样就可以去掉反相效果了????

上面是我的一些比较混乱的想法,不知对不对,还望各位指导!!!很有可能一开始我就理解错了
回复

使用道具 举报

发表于 2014-3-31 20:05:52 | 显示全部楼层
一路控制正转,另外一路控制反转。如果控制正转的一路输出PWM,那么另外一路就应该输出100%。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-31 20:09:00 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-31 20:05
一路控制正转,另外一路控制反转。如果控制正转的一路输出PWM,那么另外一路就应该输出100%。

那像下面这样的话就不是输出100%了,但是不知道为什么不对?
void Speed_R_Back(uint32 Speed)         //右轮后退
{
   FTM_PWM_Duty(FTM0, FTM_CH3,0);
   FTM_PWM_Duty(FTM0, FTM_CH4,Speed);
   DELAY_MS(1000);
}
回复 支持 反对

使用道具 举报

发表于 2014-3-31 20:11:54 | 显示全部楼层
草原上的星星 发表于 2014-3-31 20:09
那像下面这样的话就不是输出100%了,但是不知道为什么不对?
void Speed_R_Back(uint32 Speed)          ...

我们的模块是应该有反相效果的。

试下修复一下这里的bug,然后在看看情况:
【一天攻破K60】 BUG 汇总 - 一天攻破K60 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... tid=1294&ctid=1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-31 20:20:17 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-31 20:11
我们的模块是应该有反相效果的。

试下修复一下这里的bug,然后在看看情况:

嗯,刚开始确实是反相的没错。现在右边的电机也是有反相效果的。我只是觉得,如果我把一边的通道设为0的话,像这样:
void Speed_R_Back(uint32 Speed)         //右轮后退
{
   FTM_PWM_Duty(FTM0, FTM_CH3,0);
   FTM_PWM_Duty(FTM0, FTM_CH4,Speed);
   DELAY_MS(1000);
}
那它不就没有反相效果了?
刚刚我有看到你的回复了,你说如果一路输出是正转的话,那另一路的输出应该是100%,那应该就是下面:
void Speed_R_Back(uint32 Speed)         //右轮后退
{
   FTM_PWM_Duty(FTM0, FTM_CH3,100);
   FTM_PWM_Duty(FTM0, FTM_CH4,Speed);
   DELAY_MS(1000);
}
只是我不明白为什么
回复 支持 反对

使用道具 举报

发表于 2014-3-31 20:23:11 | 显示全部楼层
草原上的星星 发表于 2014-3-31 20:20
嗯,刚开始确实是反相的没错。现在右边的电机也是有反相效果的。我只是觉得,如果我把一边的通道设为0的话 ...

其实很容易理解,两个正负极,一个高,一个低的时候,这样才可以正常的转动。

如果你一个一直保持高,另外一个PWM,那么低电平的时候电机就转动。

如果你一个一直保持低,另外一个PWM,那么高电平的时候电机就转动
回复 支持 反对

使用道具 举报

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

本版积分规则

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