|
本帖最后由 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. |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|