ppm0310 发表于 2015-6-2 11:05:49

Aruino PWM控制MOS管的问题

本帖最后由 ppm0310 于 2015-6-2 11:05 编辑

最近正在学习网上的开源四轴,用Pro mini +GY521+HC06蓝牙搭建一个蓝牙控制的微型四轴,碰到了一个问题,推油门时电机一下就到最高速,然后失控也无法降下来。为此做了一个实验模块,实验PWM控制电机的转速。实验电路如下:


程序代码如下:


int pwmMotor=100;
void setup ()
{
pinMode(4,INPUT);
pinMode(3,OUTPUT);      //该端口需要选择有#号标识的数字口
pinMode(5,INPUT);
Serial.begin(9600);
}

void loop()
{
int up =digitalRead(4);          //读取4号口的状态
int down = digitalRead(5);      //读取5号口的状态   
if (up==HIGH)                  //判断4号口目前是否是高电平
{
   pwmMotor=pwmMotor+15;                         //每次累加值为5
    if (pwmMotor>=255) {
      pwmMotor=255;
    }            //限定最大值为255   
analogWrite(3,pwmMotor);               //使用PWM控制6号口输出,变量n的取值范围是0-255
    delay (100);
}
if (down==HIGH)                  //减少亮度
{
   pwmMotor=pwmMotor-15;
    if (pwmMotor<=0) {
      pwmMotor=0;
    }
analogWrite(6,pwmMotor);
    delay (100);
}
Serial.println(pwmMotor);                     //串口输出电压值,并且不换行


}


按动2个按钮,在串口监视器上可以看到输出的PWM值有明显变化,初始100,UP(按钮)加15,DOWN(按钮)减15。但是电机转速的变化有点不懂了,UP时明显转速加快,Down时转速不变,即使降到零也不会变,但一旦再UP时,转速就马上降到当前值。例如:初始100,UP直至255,转速到最高,此时Down到100,转速也不会变化,即使到0,也还是255时的转速,但如果加1次UP,立刻就跳到当前的值对应的转速,比如15,转速明显低了。


这是因为MOS管的原因吗?MOS管是IRLML2502.

ppm0310 发表于 2015-6-2 11:15:59

刚刚又测了一下电压,电压表测3口PWM输出对地的电压。串口显示电压也是只升不降,只有升一次,才会降到当前值。

longma 发表于 2015-6-2 12:12:55

你down时,写入的是端口6啊。

analogWrite(6,pwmMotor);

ppm0310 发表于 2015-6-2 14:58:09

:L
看到了

那为什么我的四轴电路会出现那么奇怪的故障呢,电路和这一样,MultiWii程序。

而且MOS管的GS总是击穿,新的管子SG之间的阻抗很大,上电路之后开机试过之后就只有几K了。

为啥呢?

帕米 发表于 2015-6-2 20:10:30

无刷信号是 1ms~2ms 脉宽的PPM信号,而有刷信号是 0-100% 占空比,两者是不兼容的。 百度一下 酷玩实验室 上面做四轴灰机的大把图 跟配置.

ppm0310 发表于 2015-6-2 20:17:33

帕米 发表于 2015-6-2 20:10 static/image/common/back.gif
无刷信号是 1ms~2ms 脉宽的PPM信号,而有刷信号是 0-100% 占空比,两者是不兼容的。 百度一下 酷玩实验室 上 ...

我这个电机是空心杯有刷电机。
页: [1]
查看完整版本: Aruino PWM控制MOS管的问题