// File: sketch.ino
#include <Servo.h>
// Define Servo objects
Servo servo1;
Servo servo2;
Servo servo3;
// Define button pins
const int button1 = 53; // Green button -> Servo1
const int button2 = 51; // Blue button -> Servo2
const int button3 = 49; // Yellow button -> Servo3
// Define servo PWM pins
const int servo1Pin = 3;
const int servo2Pin = 4;
const int servo3Pin = 2;
// Variables to track servo states
bool servo1State = false;
bool servo2State = false;
bool servo3State = false;
void setup() {
// Attach servos to their respective pins
servo1.attach(servo1Pin);
servo2.attach(servo2Pin);
servo3.attach(servo3Pin);
// Set button pins as input
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
}
void loop() {
static bool lastButton1State = HIGH;
static bool lastButton2State = HIGH;
static bool lastButton3State = HIGH;
bool currentButton1State = digitalRead(button1);
bool currentButton2State = digitalRead(button2);
bool currentButton3State = digitalRead(button3);
if (currentButton1State == LOW && lastButton1State == HIGH) {
servo1State = !servo1State;
servo1.write(90);
delay(3000); // Keep servo active for 10 seconds
delay(2000); // Keep servo closed for 2 seconds
servo1.write(0);
}
if (currentButton2State == LOW && lastButton2State == HIGH) {
servo2State = !servo2State;
servo2.write(90);
delay(3000); // Keep servo active for 10 seconds
delay(2000); // Keep servo closed for 2 seconds
servo2.write(0);
}
if (currentButton3State == LOW && lastButton3State == HIGH) {
servo3State = !servo3State;
servo3.write(90);
delay(3000); // Keep servo active for 10 seconds
delay(2000); // Keep servo closed for 2 seconds
servo3.write(0);
}
lastButton1State = currentButton1State;
lastButton2State = currentButton2State;
lastButton3State = currentButton3State;
}