El CD74HC4067 es un multiplexor analógico/digital de 16 canales que permite a una Raspberry Pi conectarse con hasta 16 entradas o salidas usando solo unos pocos pines GPIO. Es perfecto para ampliar las capacidades de E/S de tu Raspberry Pi cuando trabajas con múltiples sensores o dispositivos.
Qué necesitarás
- Raspberry Pi (cualquier modelo con soporte GPIO, p. ej., Pi 3, Pi 4)
- CD74HC4067 Multiplexor
- Dispositivos de entrada analógicos o digitales (p. ej., sensores, interruptores)
- Protoboard y cables dupont
- Python instalado en la Raspberry Pi
Paso 1: Entendiendo el CD74HC4067
El CD74HC4067 tiene:
- 16 canales de entrada/salida (S0-S15)
- 4 pines de control (S0, S1, S2, S3) para seleccionar el canal activo.
- 1 pin de habilitación (EN) para activar el multiplexor (activo LOW).
- Un único pin COM (común) para comunicación compartida.
Tabla de verdad para la selección de canales
| S3 | S2 | S1 | S0 | Canal activo |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | S0 |
| 0 | 0 | 0 | 1 | S1 |
| 0 | 0 | 1 | 0 | S2 |
| ... | ... | ... | ... | ... |
| 1 | 1 | 1 | 1 | S15 |
Paso 2: Cableado del CD74HC4067 a la Raspberry Pi
Conecta el multiplexor a la Raspberry Pi de la siguiente manera:
| CD74HC4067 Pin | Pin de la Raspberry Pi |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | GND (Pin 6) |
| S0 | GPIO17 (Pin 11) |
| S1 | GPIO27 (Pin 13) |
| S2 | GPIO22 (Pin 15) |
| S3 | GPIO23 (Pin 16) |
| EN | GND (Activo LOW) |
| COM | GPIO18 (Pin 12, Entrada/Salida analógica) |
| S0-S15 | Conectar sensores/dispositivos |
Paso 3: Instalar las bibliotecas requeridas
Actualiza tu Raspberry Pi e instala las bibliotecas Python para controlar GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Paso 4: Código Python para leer datos del multiplexor
Aquí tienes un script en Python para controlar el CD74HC4067 y leer datos de los canales conectados.
Ejemplo de código Python
import RPi.GPIO as GPIO
import time
# Definir pines GPIO
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18 # Pin común para entrada/salida
# Inicializar GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN) # Configurar el pin COM como entrada para leer datos
# Función para seleccionar un canal
def select_channel(channel):
GPIO.output(S0, channel & 0x01)
GPIO.output(S1, (channel >> 1) & 0x01)
GPIO.output(S2, (channel >> 2) & 0x01)
GPIO.output(S3, (channel >> 3) & 0x01)
try:
while True:
for channel in range(16):
select_channel(channel)
time.sleep(0.1) # Pequeña espera para la estabilización del canal
value = GPIO.input(COM) # Leer datos del canal activo
print(f"Canal {channel}: {value}")
time.sleep(1)
except KeyboardInterrupt:
print("Saliendo...")
finally:
GPIO.cleanup()
Paso 5: Aplicaciones del CD74HC4067 con Raspberry Pi
- Lectura de múltiples sensores: Interfaz con hasta 16 sensores (p. ej., temperatura, humedad o luz).
- Expansión de E/S digital: Gestiona múltiples interruptores, LEDs o relés.
- Integración de sensores analógicos: Lee señales de potenciómetros, joysticks o sensores de humedad del suelo.
- Automatización del hogar: Controla múltiples dispositivos como luces, ventiladores o electrodomésticos.
Resolución de problemas
-
Sin datos en los canales:
- Verifica el cableado de los pines de control S0-S3 y del pin COM.
- Asegúrate de que los sensores/dispositivos estén correctamente conectados a los pines S0-S15.
-
Selección de canal incorrecta:
- Revisa la tabla de verdad para las configuraciones de S0-S3.
- Asegúrate de que el pin EN esté conectado a GND para la activación.
-
Lecturas intermitentes:
- Añade una pequeña espera (
time.sleep(0.1)) entre el cambio de canales para permitir la estabilización de la señal.
- Añade una pequeña espera (
Conclusión
El CD74HC4067 multiplexor es una forma potente y rentable de ampliar las capacidades de entrada/salida de la Raspberry Pi. Siguiendo esta guía, puedes conectar fácilmente hasta 16 dispositivos analógicos o digitales usando solo 4 pines GPIO. ¡Experimenta con varios sensores y aplicaciones para aprovechar al máximo este versátil módulo! 🚀





