#include <Servo.h>
#define BUTTON1_PIN 2
#define BUTTON2_PIN 3
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
volatile int angle1 = 0;
volatile int angle2 = 0;
volatile int angle3 = 0;
volatile int angle4 = 0;
void setup() {
servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
servo4.attach(12);
pinMode(BUTTON1_PIN, INPUT_PULLUP);
pinMode(BUTTON2_PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BUTTON1_PIN), button1Interrupt, CHANGE);
attachInterrupt(digitalPinToInterrupt(BUTTON2_PIN), button2Interrupt, CHANGE);
}
void loop() {
// No se necesita realizar ninguna tarea en el bucle principal
}
void button1Interrupt() {
if (digitalRead(BUTTON1_PIN) == HIGH) {
angle1 += 45;
angle2 += 45;
if (angle1 > 180) angle1 = 0;
if (angle2 > 180) angle2 = 0;
servo1.write(angle1);
servo2.write(angle2);
}
}
void button2Interrupt() {
if (digitalRead(BUTTON2_PIN) == HIGH) {
angle3 += 45;
angle4 += 45;
if (angle3 > 180) angle3 = 0;
if (angle4 > 180) angle4 = 0;
servo3.write(angle3);
servo4.write(angle4);
}
}