#include <light_CD74HC4067.h>

const int s0Pin = 2;   // S0 pin (Conectar a un pin digital)
const int s1Pin = 3;   // S1 pin (Conectar a un pin digital)
const int s2Pin = 4;   // S2 pin (Conectar a un pin digital)
const int s3Pin = 5;   // S3 pin (Conectar a un pin digital)
const int signalPin = 6; // Pin analógico al que está conectado el multiplexor

CD74HC4067 mux(s0Pin, s1Pin, s2Pin, s3Pin); // mux(s0,s1,s2,s3), where s3 is the highest select line (MSB)

void setup() {
  Serial.begin(9600);
  // Configurar los pines de selección (s0, s1, s2, s3) como salidas
  pinMode(s0Pin, OUTPUT);
  pinMode(s1Pin, OUTPUT);
  pinMode(s2Pin, OUTPUT);
  pinMode(s3Pin, OUTPUT);
  // Configurar la salida del multiplexor que está conectada al LED como salida digital
  pinMode(signalPin, INPUT_PULLUP);// Configura el pin del botón conectado entre el pin y GND
}

int estadoBoton = 0;
const int entradasmplex = 16;
unsigned long lastdebouncetime[entradasmplex] = {0};
unsigned long debouncedelay = 50;

int lecturas[entradasmplex] = {0};
int vpmux[entradasmplex] = {0};

void loop(){
  for (int i = 0; i <= 15; i++) {
    mux.channel(i);
    estadoBoton = digitalRead(signalPin);
    if ((millis() - lastdebouncetime[i]) > debouncedelay){
      if (estadoBoton == 0){
        Serial.print("boton "+ String(i) + "=" + String(estadoBoton));
        Serial.print("\t");
      }
    }
  }
}