//definimos el numero de entrada y salida de los pones
const int pines_out = 8;
const int pines_in = 4;
//almacenamos los valores en dos arreglos
int pines_2 [pines_in] = {34,35,32,33};
int pines_ [pines_out] = {22,21,19,18,5,17,16,4};
//creamos la secuencia en la matriz
const int sequences[9][8] = {
{1, 0, 0, 0, 0, 0, 0, 0}, // Secuencia 0
{0, 1, 0, 0, 0, 0, 0, 0}, // Secuencia 1
{0, 0, 1, 0, 0, 0, 0, 0}, // Secuencia 2
{0, 0, 0, 1, 0, 0, 0, 0}, // Secuencia 3
{0, 0, 0, 0, 1, 0, 0, 0}, // Secuencia 4
{0, 0, 0, 0, 0, 1, 0, 0}, // Secuencia 5
{0, 0, 0, 0, 0, 0, 1, 0}, // Secuencia 6
{0, 0, 0, 0, 0, 0, 0, 1}, // Secuencia 7
{1, 1, 1, 1, 1, 1, 1, 1} // Secuencia 8
};
void setup() {
//definimos de forma dinamica los pines de salida y entrada
for (int i=0;i<=pines_out;i++){
pinMode(pines_[i], OUTPUT);
}
for (int j=0;j<=pines_in;j++){
pinMode(pines_2[j], INPUT);
}
Serial.begin(9600);
}
void loop() {
delay(50);
int userInput = 0;
//leemos los pines
for (int i = 0; i < 4; i++) {
userInput |= digitalRead(pines_2[i]) << i;
}
// Mostrar la secuencia correspondiente
if (userInput >= 0 && userInput <= 8) {
for (int i = 0; i < 8; i++) {
digitalWrite(pines_[i], sequences[userInput][i]);
}
} else {
// Si el valor de entrada no está en el rango válido, apagar todas las salidas
for (int i = 0; i < 8; i++) {
digitalWrite(pines_[i], LOW);
}
}
}