#include <Servo.h>
// Define los pines para los pulsadores y los servomotores
const int pulsadorPin1 = 2;
const int pulsadorPin2 = 3;
const int servoPines[] = {4, 5, 6, 7, 8, 9, 10}; // Pines para los 7 servomotores
// Crea objetos Servo para cada servomotor
Servo servos[7];
// Variables para almacenar el estado de los pulsadores
int estadoPulsadorAnterior1 = LOW;
int estadoPulsadorAnterior2 = LOW;
int estadoPulsadorActual1;
int estadoPulsadorActual2;
void setup() {
// Inicializa los pulsadores como entradas
pinMode(pulsadorPin1, INPUT);
pinMode(pulsadorPin2, INPUT);
// Inicializa cada servo en los pines correspondientes
for (int i = 0; i < 7; i++) {
servos[i].attach(servoPines[i]);
}
}
void loop() {
// Lee el estado actual de los pulsadores
estadoPulsadorActual1 = digitalRead(pulsadorPin1);
estadoPulsadorActual2 = digitalRead(pulsadorPin2);
// Si hay un cambio en el estado del primer pulsador
if (estadoPulsadorActual1 != estadoPulsadorAnterior1) {
// Si el nuevo estado del primer pulsador es alto (presionado)
if (estadoPulsadorActual1 == HIGH) {
// Activa la primera secuencia de movimientos en todos los servomotores
secuencia1();
}
// Actualiza el estado del primer pulsador anterior al actual
estadoPulsadorAnterior1 = estadoPulsadorActual1;
}
// Si hay un cambio en el estado del segundo pulsador
if (estadoPulsadorActual2 != estadoPulsadorAnterior2) {
// Si el nuevo estado del segundo pulsador es alto (presionado)
if (estadoPulsadorActual2 == HIGH) {
// Activa la segunda secuencia de movimientos solo en los primeros 6 servomotores
secuencia2();
}
// Actualiza el estado del segundo pulsador anterior al actual
estadoPulsadorAnterior2 = estadoPulsadorActual2;
}
}
// Primera secuencia de movimientos: baja todos los servomotores
void secuencia1() {
for (int i = 0; i < 7; i++) {
servos[i].write(180); // Cambia la posición a 180 grados (o cualquier valor deseado)
}
}
// Segunda secuencia de movimientos: baja solo los primeros 6 servomotores
void secuencia2() {
for (int i = 0; i < 6; i++) {
servos[i].write(180); // Cambia la posición a 180 grados (o cualquier valor deseado)
}
}