设计一程序,让电机驱动板(可以控制两个电机)控制一个运动,一个根据按键正反转,但是通电后发现没按键控制的电机不动了,就是if语句后的程序不执行了,是什么原因,程序如下:
- #include <Servo.h>
- int pinI1=8;//定义I1接口
- int pinI2=9;//定义I2接口
- int speedpin=10;//定义EA(PWM调速)接口
- int pinI3=1;//定义I1接口
- int pinI4=2;//定义I2接口
- int speedpin0=11;//定义EA(PWM调速)接口
- int button_1 =3;//按钮1连在数字端口1
- int button_2 =4;//按钮2连在数字端口2
- void setup()
- {
- pinMode(button_1, INPUT); //设置按钮1为输入
- pinMode(button_2, INPUT); //设置按钮2为输入
-
-
- pinMode(pinI1,OUTPUT);//定义该接口为输出接口
- pinMode(pinI2,OUTPUT);
- pinMode(speedpin,OUTPUT);
-
- pinMode(pinI3,OUTPUT);//定义该接口为输出接口
- pinMode(pinI4,OUTPUT);
- pinMode(speedpin0,OUTPUT);
-
- Serial.begin(9600);
- }
- void loop()
- {
- if( digitalRead(button_1)==LOW&&digitalRead(button_2)==HIGH)
- {
- analogWrite(speedpin,550);//输入模拟值进行设定速度
- delay(2000);
- digitalWrite(pinI1,LOW);//使直流电机顺时针转
- digitalWrite(pinI2,HIGH);
-
- }
-
- if( digitalRead(button_2)==LOW&&digitalRead(button_1)==HIGH)
- {
- analogWrite(speedpin,550);//输入模拟值进行设定速度
- delay(2000);
- digitalWrite(pinI2,LOW);//使直流电机顺时针转
- digitalWrite(pinI1,HIGH);
-
- }
-
- analogWrite(speedpin0,550);//输入模拟值进行设定速度
- delay(2000);
- digitalWrite(pinI3,LOW);//使直流电机顺时针转
- digitalWrite(pinI4,HIGH);
- }
复制代码 |