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. 刚刚又测了一下电压,电压表测3口PWM输出对地的电压。串口显示电压也是只升不降,只有升一次,才会降到当前值。 你down时,写入的是端口6啊。
analogWrite(6,pwmMotor); :L
看到了
那为什么我的四轴电路会出现那么奇怪的故障呢,电路和这一样,MultiWii程序。
而且MOS管的GS总是击穿,新的管子SG之间的阻抗很大,上电路之后开机试过之后就只有几K了。
为啥呢? 无刷信号是 1ms~2ms 脉宽的PPM信号,而有刷信号是 0-100% 占空比,两者是不兼容的。 百度一下 酷玩实验室 上面做四轴灰机的大把图 跟配置.
帕米 发表于 2015-6-2 20:10 static/image/common/back.gif
无刷信号是 1ms~2ms 脉宽的PPM信号,而有刷信号是 0-100% 占空比,两者是不兼容的。 百度一下 酷玩实验室 上 ...
我这个电机是空心杯有刷电机。
页:
[1]