本帖最后由 风华正茂 于 2015-7-23 13:58 编辑
本程序作用两个直流电机先正转一秒 暂停一秒 反转一秒 如此反复
- int IN1=7;
- int IN2=8;
- int IN3=12;
- int IN4=13;
-
- int EN1=5;//使能端口1
- int EN2=6;//使能端口2
- //数字端口7与8为一组,12与13为另一组
- //数字端口5 6 作为直流电机的使能端
- void Motor1(boolean reverse)//电机1正转
- {
- if (reverse) //正转
- {
- digitalWrite(IN1,HIGH);
- digitalWrite(IN2,LOW);
- }
-
- else //反转
- {
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,HIGH);
- }
-
- }
-
- void Motor2(boolean reverse)//电机2转动
- {
- if (reverse) //正转
- {
- digitalWrite(IN3,HIGH);
- digitalWrite(IN4,LOW);
- }
-
- else //反转
- {
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,HIGH);
- }
-
- }
-
- void aa()//先正转1秒停1秒后反转1秒
- {
-
-
- //正转
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,HIGH);
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,HIGH);
- delay(500);
-
- //暂停一秒
- stopMotor(true);
- delay(500);
- stopMotor(false);//恢复电机使能端高电平
-
-
- //反转
- digitalWrite(IN3,HIGH);
- digitalWrite(IN4,LOW);
- digitalWrite(IN1,HIGH);
- digitalWrite(IN2,LOW);
-
-
- delay(500);
- // 暂停
- stopMotor(true);
- delay(500);
- stopMotor(false);
-
-
-
- }
-
- void stopMotor(boolean r)//电机停转
- {
- if (r)
- {
- analogWrite(EN1,0);
- analogWrite(EN2,0);
- }
- else
- {
- analogWrite(EN1,288);
- analogWrite(EN2,288);
- }
- }
-
- void setup()
- {
- int i,a[4];
- for (i=1;i<=4;i++)
- {
- a[4]=(7,8,12,13);
- }
- pinMode(i,OUTPUT); //设置数字端口7,8,12,13为输出模式
-
- for (i=1;i<=4;i++)
- {
- a[4]=(7,8,12,13);
- }
- digitalWrite(i,HIGH); //设置数字端口7,,12,13为HIGH,电机保持不动
-
-
- pinMode(5,OUTPUT);//设置数字端口5 6为输出模式
- pinMode(6,OUTPUT);
- Serial.begin(91200);
-
- }
-
- void loop()
- {
- aa();//两个直流电机正转1秒 暂停一秒 反转一秒
-
-
- }
|