CD4051B with ESP8266 with 2 potentiometers as input and 2 lights as output

CD4051B with ESP8266

CD4051B with ESP8266

This project uses the CD4051B multiplexer with an ESP8266 to read values from two potentiometers and adjust the brightness of two LEDs accordingly.

📜 ESP8266 Code:

#define MUX_A D4
#define MUX_B D3
#define MUX_C D2

#define ANALOG_INPUT A0
#define LED1 D1  // LED controlled by POT1
#define LED2 D0  // LED controlled by POT2

void setup() {
    pinMode(MUX_A, OUTPUT);
    pinMode(MUX_B, OUTPUT);
    pinMode(MUX_C, OUTPUT);
    
    pinMode(LED1, OUTPUT);
    pinMode(LED2, OUTPUT);
    
    Serial.begin(115200);
}

void changeMux(int c, int b, int a) {
    digitalWrite(MUX_A, a);
    digitalWrite(MUX_B, b);
    digitalWrite(MUX_C, c);
    delay(10); // Allow time for signal to settle
}

void loop() {
    int pot1_value, pot2_value;
    
    // Read POT1 (X0 - Pin 13)
    changeMux(LOW, LOW, LOW);
    pot1_value = analogRead(ANALOG_INPUT);

    // Read POT2 (X1 - Pin 14)
    changeMux(HIGH, LOW, LOW);
    pot2_value = analogRead(ANALOG_INPUT);

    // Map potentiometer values (0-1023) to PWM range (0-255)
    int led1_brightness = map(pot1_value, 0, 1023, 0, 255);
    int led2_brightness = map(pot2_value, 0, 1023, 0, 255);

    // Print values to Serial Monitor
    Serial.print("POT1: ");
    Serial.print(pot1_value);
    Serial.print(" | POT2: ");
    Serial.print(pot2_value);
    Serial.print(" || LED1: ");
    Serial.print(led1_brightness);
    Serial.print(" | LED2: ");
    Serial.println(led2_brightness);

    // Set LED brightness using PWM
    analogWrite(LED1, led1_brightness);
    analogWrite(LED2, led2_brightness);

    delay(100);
}
    

âš¡ Circuit Connections:

  • **ESP8266 to CD4051B**
    • D4 → MUX_A (Pin 11)
    • D3 → MUX_B (Pin 10)
    • D2 → MUX_C (Pin 9)
    • A0 → Common Output (Pin 3)
    • GND → GND (Pin 8)
    • 3.3V → VCC (Pin 16)
  • **Potentiometers:**
    • POT1 → X0 (Pin 13 of CD4051B)
    • POT2 → X1 (Pin 14 of CD4051B)
  • **LEDs:**
    • D1 (PWM) → LED1
    • D0 (PWM) → LED2

Circuit Diagram


Post a Comment

0 Comments