It's not hard to add a second servo:
const int servo1Pin = 2;
const int buttonPin = 3;
const int LEDPin = 4;
const int servo2Pin = 5;
#include <Servo.h>
Servo visorServo1;
Servo visorServo2;
void setup() {
visorServo1.write(0); // Initial position
visorServo1.attach(servo1Pin);
visorServo2.write(180); // initial position
visorServo2.attach(servo2Pin);
pinMode(buttonPin, INPUT_PULLUP); // Connect button between pin and GROUND. LOW when pushed.
pinMode(LEDPin, OUTPUT);
digitalWrite(LEDPin, LOW); // LED off
}
void loop() {
static unsigned long lastPushedTime = 0;
static boolean visorClosed = true;
static boolean lastButtonState = HIGH;
boolean newButtonState = digitalRead(buttonPin);
// If the button is down and it has been a while since it was last down...
if (newButtonState == LOW && lastButtonState == HIGH && millis() - lastPushedTime > 100) {
lastPushedTime = millis();
if (visorClosed) {
visorServo1.write(180); // Open visor
visorServo2.write(0);
visorClosed = false;
digitalWrite(LEDPin, HIGH); // Turn on light
}
else { // Viso is open
visorServo1.write(0); // Close visor
visorServo2.write(180);
visorClosed = true;
digitalWrite(LEDPin, LOW); // Turn off light
}
}
lastButtonState = newButtonState;
}