#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));
  }
}