//const int MUX_S0 = 0;   // Multiplexer control pin S0
//const int MUX_S1 = 1;   // Multiplexer control pin S1
//const int MUX_S2 = 2;   // Multiplexer control pin S2
//const int MUX_S3 = 3;   // Multiplexer control pin S3

//const int NUM_MUX_CHANNELS = 16; // Number of channels per multiplexer
//const int NUM_MULTIPLEXERS = 2;   // Number of multiplexers

//const int LED_PIN_1 = 4; // First LED pin
//const int LED_PIN_2 = 5; // Second LED pin

//void setup() {
 // pinMode(MUX_S0, OUTPUT);
  //pinMode(MUX_S1, OUTPUT);
  //pinMode(MUX_S2, OUTPUT);
  //pinMode(MUX_S3, OUTPUT);
  
//  pinMode(LED_PIN_1, OUTPUT);
 // pinMode(LED_PIN_2, OUTPUT);
  
  //Serial.begin(9600);
//}

//void loop() {
//  for (int mux = 0; mux < NUM_MULTIPLEXERS; mux++) {
//    for (int channel = 0; channel < NUM_MUX_CHANNELS; channel++) {
//      // Set the multiplexer control pins
//      setMuxControlPins(mux, channel);

      // Turn on the LEDs
//      digitalWrite(LED_PIN_1, HIGH);
 //     digitalWrite(LED_PIN_2, HIGH);

      // Wait for a second
     // delay(1000);

      // Turn off the LEDs
     // digitalWrite(LED_PIN_1, LOW);
      //digitalWrite(LED_PIN_2, LOW);
      
      // Delay before the next channel
      //delay(100); // Delay for better readability, adjust as needed
   // }
  //}
//}

//void setMuxControlPins(int mux, int channel) {
 // digitalWrite(MUX_S0, bitRead(channel, 0));
  //digitalWrite(MUX_S1, bitRead(channel, 1));
  //digitalWrite(MUX_S2, bitRead(channel, 2));
  //digitalWrite(MUX_S3, bitRead(channel, 3));
//}
const int MUX_S0 = 0;   // Multiplexer 1 control pin S0
const int MUX_S1 = 1;   // Multiplexer 1 control pin S1
const int MUX_S2 = 2;   // Multiplexer 1 control pin S2
const int MUX_S3 = 3;   // Multiplexer 1 control pin S3

const int MUX_S0_2 = 5;   // Multiplexer 2 control pin S0
const int MUX_S1_2 = 6;   // Multiplexer 2 control pin S1
const int MUX_S2_2 = 7;   // Multiplexer 2 control pin S2
const int MUX_S3_2 = 8;   // Multiplexer 2 control pin S3

const int NUM_MUX_CHANNELS = 16; // Number of channels per multiplexer
const int NUM_MULTIPLEXERS = 2;   // Number of multiplexers

const int LED_PIN_1 = 8; // First LED pin
const int LED_PIN_2 = 9; // Second LED pin

void setup() {
  pinMode(MUX_S0, OUTPUT);
  pinMode(MUX_S1, OUTPUT);
  pinMode(MUX_S2, OUTPUT);
  pinMode(MUX_S3, OUTPUT);
  
  pinMode(MUX_S0_2, OUTPUT);
  pinMode(MUX_S1_2, OUTPUT);
  pinMode(MUX_S2_2, OUTPUT);
  pinMode(MUX_S3_2, OUTPUT);

  pinMode(LED_PIN_1, OUTPUT);
  pinMode(LED_PIN_2, OUTPUT);
  
  Serial.begin(9600);
}

void loop() {
  for (int mux = 0; mux < NUM_MULTIPLEXERS; mux++) {
    for (int channel = 0; channel < NUM_MUX_CHANNELS; channel++) {
      // Set the multiplexer control pins
      if (mux == 0) {
        setMuxControlPins(mux, channel);
      } else if (mux == 1) {
        setMuxControlPins_2(mux, channel);
      }

      // Turn on the LEDs
      digitalWrite(LED_PIN_1, HIGH);
      digitalWrite(LED_PIN_2, HIGH);

      // Wait for a second
      delay(100);

      // Turn off the LEDs
      digitalWrite(LED_PIN_1, LOW);
      digitalWrite(LED_PIN_2, LOW);
      
      // Delay before the next channel
      delay(100); // Delay for better readability, adjust as needed
    }
  }
}

void setMuxControlPins(int mux, int channel) {
  digitalWrite(MUX_S0, bitRead(channel, 0));
  digitalWrite(MUX_S1, bitRead(channel, 1));
  digitalWrite(MUX_S2, bitRead(channel, 2));
  digitalWrite(MUX_S3, bitRead(channel, 3));
}

void setMuxControlPins_2(int mux, int channel) {
  digitalWrite(MUX_S0_2, bitRead(channel, 5));
  digitalWrite(MUX_S1_2, bitRead(channel, 6));
  digitalWrite(MUX_S2_2, bitRead(channel, 7));
  digitalWrite(MUX_S3_2, bitRead(channel, 8));
}
$abcdeabcde151015202530354045505560fghijfghij
esp:0
esp:1
esp:2
esp:3
esp:4
esp:5
esp:6
esp:7
esp:8
esp:9
esp:10
esp:11
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:20
esp:21
esp:26
esp:33
esp:34
esp:35
esp:36
esp:37
esp:38
esp:39
esp:40
esp:41
esp:42
esp:45
esp:46
esp:3V3
esp:5V
esp:GND.1
esp:TX
esp:RX
esp:RST
esp:GND.2
mux1:I15
mux1:I14
mux1:I13
mux1:I12
mux1:I11
mux1:I10
mux1:I9
mux1:I8
mux1:I7
mux1:I6
mux1:I5
mux1:I4
mux1:I3
mux1:I2
mux1:I1
mux1:I0
mux1:COM
mux1:S3
mux1:S2
mux1:S1
mux1:S0
mux1:EN
mux1:VCC
mux1:GND
mux2:I15
mux2:I14
mux2:I13
mux2:I12
mux2:I11
mux2:I10
mux2:I9
mux2:I8
mux2:I7
mux2:I6
mux2:I5
mux2:I4
mux2:I3
mux2:I2
mux2:I1
mux2:I0
mux2:COM
mux2:S3
mux2:S2
mux2:S1
mux2:S0
mux2:EN
mux2:VCC
mux2:GND
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
vcc1:VCC
gnd1:GND
led7:A
led7:C
led8:A
led8:C
led9:A
led9:C
led10:A
led10:C
led11:A
led11:C
led12:A
led12:C
led13:A
led13:C
led14:A
led14:C
led15:A
led15:C
led16:A
led16:C
gnd2:GND
led17:A
led17:C
led18:A
led18:C
led19:A
led19:C
led20:A
led20:C
led21:A
led21:C
led22:A
led22:C
led23:A
led23:C
led24:A
led24:C
led25:A
led25:C
led26:A
led26:C
led27:A
led27:C
led28:A
led28:C
led29:A
led29:C
led30:A
led30:C
led31:A
led31:C
led32:A
led32:C