这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 小车左右电机给同样的占空比,但速度相差很大

共7条 1/1 1 跳转至

小车左右电机给同样的占空比,但速度相差很大

助工
2015-07-29 23:56:20     打赏

小车左右电机给同样的占空比,但速度相差很大。

刚开始我怀疑是小车的轮胎和电机轴的连接紧密程度有关,可后来把轮胎拆了,发现原来两个电机的电机轴转动的速度同样相差很大,甚至moto2电机的占空比是moto1电机的一半,可是moto2电机转得比moto1电机还快?

应该电机有问题,或者还有其他什么原因?



菜鸟
2015-07-30 00:13:21     打赏
2楼
虽然说因为电机死区的存在会使得不同电机在同一个占空比下的转速不同,但是差太多的话应该不是软件的问题。是不是有可能是硬件出错?

助工
2015-07-30 10:24:59     打赏
3楼

我刚才又下载了小车配套的程序,用蓝牙可以正常控制小车。

不知道是不是我的程序有问题?

motor.c和motor.h文件 是直接用配套程序里面的文件,

我的main.c 如下:


#include "sys.h"

int main(void)

{

Stm32_Clock_Init(9);            //系统时钟设置

delay_init(72);                 //延时初始化

JTAG_Set(JTAG_SWD_DISABLE);     //=====关闭JTAG接口

JTAG_Set(SWD_ENABLE);           //=====打开SWD接口 可以利用主板的SWD接口调试

LED_Init();                     //初始化与 LED 连接的硬件接口

MiniBalance_PWM_Init(3599,0);  //f = 72 000 000 /((3599+1)*(0+1)) = 20K

//=====初始化PWM 20KHZ 高频可以防止电机低频时的尖叫声

while(1)

{

PWMA = 2000;  //#define PWMA   TIM3->CCR4  在2000时电平发生翻转

PWMB = 2000;  //#define PWMB   TIM3->CCR3  在2000时电平发生翻转

GPIOB->ODR=~(1<<8);//PB8输出低 灯亮


AIN1 = 0;  //逆时针转(CCW)

AIN2 = 1;

// AIN1 = 1;  //顺时针转(CW)

// AIN2 = 0;

// BIN1 = 0;  //逆时针转(CCW)

// BIN2 = 1;

BIN1 = 0;  //顺时针转(CW)

BIN2 = 1;

}

}




助工
2015-07-30 10:29:02     打赏
4楼

看看PWM1和PWM2模式配置是否正确


助工
2015-07-30 10:54:22     打赏
5楼

PWM模式配置没错。

我发现问题了,是LED的配置影响到PB0和PB1了。

我把GPIOB->ODR=~(1<<8);//PB8输出低 灯亮

改为GPIOB->ODR &= ~(1<<8);//PB8输出低 灯亮 电机正常转动了。


院士
2015-07-30 12:47:16     打赏
6楼
这个真棒! 抛出问题,并解决问题,最后还分享了。 赞一个

助工
2015-08-01 17:25:19     打赏
7楼

解决问题的能力很好!赞!


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]