// Pines de salidas y entradas
int salidas[] = {17, 18, 19, 20, 21, 22, 23, 24, 25, 26}; // Pines de los LEDs
int entradas[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; // Pines de los botones
// Estado de los LEDs (0: apagado, 1: encendido)
int estadoinicial[] = {1, 1, 1, 1, 1, 0, 0, 0, 0, 0}; // Inicialización de los LEDs
void setup() {
// Configurar pines de LEDs como salida y botones como entrada
for (int i = 0; i < 10; i++) {
pinMode(salidas[i], OUTPUT);
pinMode(entradas[i], INPUT);
}
// Inicializar LEDs
LecturaLED();
}
void loop() {
// Leer botones y controlar LEDs
if (digitalRead(entradas[0]) == HIGH && estadoinicial[5] == 1) { //Boton 1
estadoinicial[0] = 1;
estadoinicial[5] = 0;
LecturaLED();
delay(200);
}
if (digitalRead(entradas[1]) == HIGH && estadoinicial[6] == 1) { //Boton 2
estadoinicial[1] = 1;
estadoinicial[6] = 0;
LecturaLED();
delay(200);
}
if (digitalRead(entradas[2]) == HIGH && estadoinicial[7] == 1) { //Boton 3
estadoinicial[2] = 1;
estadoinicial[7] = 0;
LecturaLED();
delay(200);
}
if (digitalRead(entradas[3]) == HIGH && estadoinicial[8] == 1) { //Boton 4
estadoinicial[3] = 1;
estadoinicial[8] = 0;
LecturaLED();
delay(200);
}
if (digitalRead(entradas[4]) == HIGH) { //Boton 5
estadoinicial[4] = !estadoinicial[4];
LecturaLED();
delay(200);
}
if (digitalRead(entradas[5]) == HIGH && estadoinicial[0] == 1) { //Boton 6
estadoinicial[0] = 0;
estadoinicial[5] = 1;
LecturaLED();
delay(200);
}
if (digitalRead(entradas[6]) == HIGH && estadoinicial[1] == 1) { //Boton 7
estadoinicial[1] = 0; // Apagar LED 2
estadoinicial[6] = 1; // Encender LED 7
LecturaLED();
delay(200);
}
if (digitalRead(entradas[7]) == HIGH && estadoinicial[2] == 1) { //Boton 8
estadoinicial[2] = 0;
estadoinicial[7] = 1;
LecturaLED();
delay(200);
}
if (digitalRead(entradas[8]) == HIGH && estadoinicial[3] == 1) {//Boton 9
estadoinicial[3] = 0;
estadoinicial[8] = 1;
LecturaLED();
delay(200);
}
if(digitalRead(entradas[11])== HIGH && estadoinicial[9] == 0 && estadoinicial[5] == 0){ //Boton 11
estadoinicial[0] = !estadoinicial[0];
LecturaLED();
delay(200);
}
if(digitalRead(entradas[12])== HIGH && estadoinicial[9] == 0 && estadoinicial[6] == 0){ //Boton 12
estadoinicial[1] = !estadoinicial[1];
LecturaLED();
delay(200);
}
if(digitalRead(entradas[13])== HIGH && estadoinicial[9] == 0 && estadoinicial[7] == 0){ //Boton 13
estadoinicial[2] = !estadoinicial[2];
LecturaLED();
delay(200);
}
if(digitalRead(entradas[14])== HIGH && estadoinicial[9] == 0 && estadoinicial[8] == 0){ //Boton 14
estadoinicial[3] = !estadoinicial[3];
LecturaLED();
delay(200);
}
if (estadoinicial[0] == 1 && estadoinicial[1] == 1 && estadoinicial[2] == 1 && estadoinicial[3] == 1 && estadoinicial[4] == 1) {
if (digitalRead(entradas[9]) == HIGH) { //Boton 10
estadoinicial[9] = 1;
// Apagar los demás LEDs
for (int i = 0; i < 9; i++) {
estadoinicial[i] = 0;
}
LecturaLED();
delay(200);
}
}
// Verificar si se puede reiniciar
if (digitalRead(entradas[10]) == HIGH && estadoinicial[9] == 1) { // Boton reinicio
reinicio(); // Llama a la función reinicio
LecturaLED(); // Actualizar el estado de los LEDs
delay(200);
}
else if (estadoinicial[9] == 0) {
// Apagar LED 10 si no se cumple la condición
estadoinicial[9] = 0;
}
}
void LecturaLED() {
for (int i = 0; i < 10; i++) {
digitalWrite(salidas[i], estadoinicial[i] ? HIGH : LOW);
}
}
void reinicio() {
// Estado inicial de los LEDs
for (int i = 0; i < 5; i++) {
estadoinicial[i] = 1; // Encender LEDs 1-5
}
for (int i = 5; i < 10; i++) {
estadoinicial[i] = 0; // Apagar LEDs 6-10
}
}