#include <Servo.h>
#define NUM_SERVOS 4
#define SV1_PIN 11
#define SV2_PIN 10
#define SV3_PIN 9
#define SV4_PIN 8
#define LED_PIN 13
#define MOSFET_PIN 2
#define FLASH_LED_EVERY 1000
Servo servos[NUM_SERVOS];
byte servoPins[] = { SV1_PIN, SV2_PIN, SV3_PIN, SV4_PIN };
void moveAllServos(int value) {
for (byte i = 0; i < NUM_SERVOS; i++) {
servos[i].write(value);
delay(15);
}
}
void setup() {
for (byte i = 0; i < NUM_SERVOS; i++)
servos[i].attach(servoPins[i]);
pinMode(LED_PIN, OUTPUT);
pinMode(MOSFET_PIN, OUTPUT);
moveAllServos(0);
digitalWrite(LED_PIN, LOW);
}
void loop() {
static bool moveComplete = false;
static bool timerExpired = false;
static unsigned long timeCapture;
if (millis() >= 20000 && !moveComplete) {
moveAllServos(90);
digitalWrite(LED_PIN, HIGH);
timerExpired = true;
}
if ((millis() - timeCapture) > FLASH_LED_EVERY / 2 && !timerExpired) {
timeCapture = millis();
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
}
}