
CD4051 Multiplexor
El CD4051 es un multiplexor/demultiplexor analógico de 8 canales que se usa para ampliar la cantidad de entradas o salidas en microcontroladores como Arduino. Puede manejar señales analógicas y digitales, permitiendo seleccionar uno de los ocho canales mediante tres pines de selección.
Características principales:
- Alimentación: 3V a 15V (funciona bien con 5V en Arduino).
- 8 canales (S0, S1, S2): Permite seleccionar cuál de las 8 señales se conecta a la salida común.
- Baja resistencia de encendido (~125Ω a 5V).
- Capacidad bidireccional: Puede actuar como multiplexor (1 entrada → varias salidas) o demultiplexor (varias entradas → 1 salida).
- Baja corriente de consumo.
- Compatible con señales analógicas y digitales.
Pines del CD4051
Pin | Nombre | Función |
---|---|---|
1 | Y4 | Canal 4 |
2 | Y6 | Canal 6 |
3 | Y7 | Canal 7 |
4 | Y5 | Canal 5 |
5 | Y3 | Canal 3 |
6 | Y0 | Canal 0 |
7 | Y1 | Canal 1 |
8 | GND | Tierra |
9 | Y2 | Canal 2 |
10 | Z (COM) | Entrada/Salida común |
11 | INH | Inhibición (desactiva el chip si está en HIGH) |
12 | S1 | Selección de canal (bit 2) |
13 | S0 | Selección de canal (bit 1). |
14 | S2 | Selección de canal (bit 3) |
15 | VCC | Voltaje de alimentación (5V en Arduino) |
Ejemplo de conexión con Arduino
Si usas el CD4051 como multiplexor para leer 8 sensores con una sola entrada analógica:
-
Conecta los pines de selección:
- S0 → Pin 8 Arduino
- S1 → Pin 9 Arduino
- S2 → Pin 10 Arduino
-
Entrada común (Z) → A0 de Arduino.
-
Habilitar el chip: Conecta INH a GND.
-
Conectar sensores a los pines Y0-Y7.
Código de ejemplo en Arduino
const int S0 = 8;
const int S1 = 9;
const int S2 = 10;
const int Z = A0;
void setup() {
Serial.begin(9600);
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
}
void loop() {
for (int i = 0; i < 8; i++) {
digitalWrite(S0, bitRead(i, 0));
digitalWrite(S1, bitRead(i, 1));
digitalWrite(S2, bitRead(i, 2));
int lectura = analogRead(Z);
Serial.print("Canal ");
Serial.print(i);
Serial.print(": ");
Serial.println(lectura);
delay(500);
}
}
Con este código, Arduino lee los 8 canales secuencialmente usando el multiplexor.