张常青 发表于 2014-11-17 16:09:25

大哥大姐帮忙看看,程序哪里不对。利用L298调速,一个按键是加速,一个减速。

int switchPin1=7; //定义switchPin1 引脚为7
                  //连接加速按键
int switchPin2 =8;//定义switchPin2 引脚为8
                  //连接减速按键
int IN1=1;//定义IN1引脚为1
int IN2=2;//定义IN2引脚为2
int EN1=9; //定义motorspeed1 引脚为9
int pwm1=0; //变量pwm 用来存储数值
void setup()
{
Serial.begin(9600); //打开串口并设置通信波特率为9600
pinMode(switchPin1, INPUT); //设定switchPin1 引脚为输入状态
pinMode(switchPin2, INPUT);
pinMode(IN1, OUTPUT); //设定IN1 引脚为输入状态
pinMode(IN2, OUTPUT); //设定IN2 引脚为输入状态
pinMode(EN1, OUTPUT); //设定EN1 引脚为输入状态
pinMode(pwm1,OUTPUT);
}
void loop()
{
        digitalWrite(IN1,HIGH);
        digitalWrite(IN2,LOW);//定义M1、M2的转向
if (LOW== digitalRead(switchPin1)) //如果switchPin1 为低电平则执行下面的语句
   {
                pwm1++;
                analogWrite(EN1,pwm1); //将a 的值赋给motorspeed
                analogWrite(EN2,pwm2); //将a 的值赋给motorspeed
   }
if (LOW==digitalRead(switchPin2)) //如果switchPin2 为低电平则执行下面的语句
   {
                pwm1--;
                analogWrite(EN1,pwm1); //将a 的值赋给motorspeed
                analogWrite(EN2,pwm2); //将a 的值赋给motorspeed
   }
}
       

fish6823 发表于 2014-11-17 23:17:32

本帖最后由 fish6823 于 2014-11-17 23:19 编辑

EN2、pwm2是什么?

张常青 发表于 2014-11-18 10:37:51

fish6823 发表于 2014-11-17 23:17 static/image/common/back.gif
EN2、pwm2是什么?

我的原程序是驱动两台电机,前面的一些定义什么的被我删了,后面的忘记删了。。

fish6823 发表于 2014-11-20 22:31:35

张常青 发表于 2014-11-18 10:37 static/image/common/back.gif
我的原程序是驱动两台电机,前面的一些定义什么的被我删了,后面的忘记删了。。

pinMode(pwm1,OUTPUT);
这一句不对吧。
还有程序大体思想是没问题,你说的不对是什么?

张常青 发表于 2014-11-24 20:52:35

fish6823 发表于 2014-11-20 22:31 static/image/common/back.gif
pinMode(pwm1,OUTPUT);
这一句不对吧。
还有程序大体思想是没问题,你说的不对是什么?

这句应该没什么问题吧,只是定义PWM1为输出。加速按键按下之后,电机转速直接达到最大值。

fish6823 发表于 2014-12-1 11:32:12

本帖最后由 fish6823 于 2014-12-1 11:33 编辑

张常青 发表于 2014-11-24 20:52 static/image/common/back.gif
这句应该没什么问题吧,只是定义PWM1为输出。加速按键按下之后,电机转速直接达到最大值。

int pwm1=0; //变量pwm 用来存储数值

你定义的pwm1可不是IO口,是PWM的输出值。应该是EN1才对吧。
页: [1]
查看完整版本: 大哥大姐帮忙看看,程序哪里不对。利用L298调速,一个按键是加速,一个减速。