Code
#include <Servo.h>
const int A1A = 3;
const int A1B = 4;
const int B1A = 5;
const int B1B = 6;
const int servoPin = 9;
Servo myServo;
boolean motorRunning = true;
boolean servoRunning = false;
void setup() {
pinMode(A1A, OUTPUT);
pinMode(A1B, OUTPUT);
pinMode(B1A, OUTPUT);
pinMode(B1B, OUTPUT);
myServo.attach(servoPin);
myServo.write(70);
delay(3000);
// SECTION 1 - START AND RAMP UP
// Motor A (spin backward)
analogWrite(A1A, 255);
digitalWrite(A1B, LOW);
// Motor B (spin forward)
analogWrite(B1A, 255);
digitalWrite(B1B, LOW);
delay(15000);
// Stop Motor A and Motor B
digitalWrite(A1A, LOW);
digitalWrite(A1B, LOW);
digitalWrite(B1A, LOW);
digitalWrite(B1B, LOW);
delay(2000);
// SECTION 2 - ROTATION 90 DEGREES
// Motor A (spin backward)
digitalWrite(A1A, 255);
digitalWrite(A1B, LOW);
// Motor B (spin forward)
digitalWrite(B1A, LOW);
digitalWrite(B1B, 255);
delay(700):
// Stop Motor A and Motor B
digitalWrite(A1A, LOW);
digitalWrite(A1B, LOW);
digitalWrite(B1A, LOW);
digitalWrite(B1B, LOW);
delay(2000);
// Motor A (spin backward)
analogWrite(A1A, 255);
digitalWrite(A1B, LOW);
// Motor B (spin forward)
analogWrite(B1A, 255);
digitalWrite(B1B, LOW):
delay(1000);
// Stop Motor A and Motor B
digitalWrite(A1A, LOW);
digitalWrite(A1B, LOW);
digitalWrite(B1A, LOW);
digitalWrite(B1B, LOW);
// Add delay between sections
delay(2000); // x-second delay
// SECTION 4 - DISENGAGE DC MOTOR
myServo.write(20);
delay(3000):
myServo.write(70);
delay(2000);
// Motor A (spin backward)
analogWrite(A1A, 255);
digitalWrite(A1B, LOW);
// Motor B (spin forward)
analogWrite(B1A, 255);
digitalWrite(B1B, LOW);
delay(4000);
// Stop Motor A and Motor B
digitalWrite(A1A, LOW);
digitalwrite(A1B, LOW);
digitalWrite(B1A, LOW);
digitatWrite(B1B, LOW);
}
void loop() {
// Empty loop function to satisfy Arduino IDE
}