// Define motor pins
int motor1 = 9; // Motor 1 pin
int motor2 = 10; // Motor 2 pin
int motor3 = 11; // Motor 3 pin
int motor4 = 12; // Motor 4 pin
// Function declarations
void spinMotors(int speed);
void stopMotors();
void spinMotorsReverse(int speed);
void setup() {
// Initialize motor pins as output
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(motor3, OUTPUT);
pinMode(motor4, OUTPUT);
}
void loop() {
// Motors spin at a constant speed
spinMotors(255); // 255 is the maximum speed (0-255)
delay(5000); // Drone runs for 5 seconds
// Motors stop
stopMotors();
delay(2000); // Pause for 2 seconds
// Motors spin in the opposite direction
spinMotorsReverse(255);
delay(5000); // Drone runs in reverse for 5 seconds
// Motors stop
stopMotors();
delay(2000); // Pause for 2 seconds
}
// Function to spin all motors at a given speed
void spinMotors(int speed) {
analogWrite(motor1, speed);
analogWrite(motor2, speed);
analogWrite(motor3, speed);
analogWrite(motor4, speed);
}
// Function to spin all motors in the opposite direction at a given speed
void spinMotorsReverse(int speed) {
analogWrite(motor1, 255 - speed);
analogWrite(motor2, 255 - speed);
analogWrite(motor3, 255 - speed);
analogWrite(motor4, 255 - speed);
}
// Function to stop all motors
void stopMotors() {
analogWrite(motor1, 0);
analogWrite(motor2, 0);
analogWrite(motor3, 0);
analogWrite(motor4, 0);
}