El CD74HC4067 es un multiplexor analógico/digital de 16 canales que permite que una Raspberry Pi interactúe con hasta 16 entradas o salidas Usando solo unos pocos pines GPIO. Es perfecto para expandir las capacidades de E/S de su Raspberry Pi cuando se trabaja con múltiples sensores o dispositivos.
Lo que necesitarás
- Frambuesa pi (Cualquier modelo con soporte de GPIO, por ejemplo, PI 3, PI 4)
- CD74HC4067 Multiplexor
- Dispositivos de entrada analógicos o digitales (por ejemplo, sensores, interruptores)
- Cables de placa y jersey
- Python instalado en la frambuesa pi
Paso 1: Comprender 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 habilitar pin (es) para activar el multiplexor (activo bajo).
- Un solo Com (común) pin 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 el CD74HC4067 al Raspberry Pi
Conecte el multiplexor al Raspberry Pi de la siguiente manera:
Pin CD74HC4067 | Pin de frambuesa 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) |
Interno | GND (bajo activo) |
Comunicarse | GPIO18 (pin 12, entrada/salida analógica) |
S0-S15 | Conectar sensores/dispositivos |
Paso 3: Instale las bibliotecas requeridas
Actualice su Raspberry Pi e instale bibliotecas de Python para el control GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Paso 4: Código de Python para leer datos del multiplexor
Aquí hay un script de Python para controlar el CD74HC4067 y leer datos de los canales conectados.
Ejemplo de código de python
import RPi.GPIO as GPIO
import time
# Define GPIO pins
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18 # Common pin for input/output
# Initialize GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN) # Set COM pin as input for reading data
# Function to select a channel
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) # Small delay for channel stabilization
value = GPIO.input(COM) # Read data from the active channel
print(f"Channel {channel}: {value}")
time.sleep(1)
except KeyboardInterrupt:
print("Exiting...")
finally:
GPIO.cleanup()
Paso 5: Aplicaciones del CD74HC4067 con Raspberry Pi
- Leyendo múltiples sensores: Interfaz con hasta 16 sensores (por ejemplo, temperatura, humedad o luz).
- E/S digital en expansión: Administre múltiples interruptores, LED o relés.
- Integración del sensor analógico: Leer señales de potenciómetros, joysticks o sensores de humedad del suelo.
- Automatización del hogar: Controle múltiples dispositivos como luces, ventiladores o electrodomésticos.
Solución de problemas
-
No hay datos de los canales:
- Verifique el cableado de pines de control S0-S3 y el pin COM.
- Asegúrese de que los sensores/dispositivos estén conectados correctamente a los pines S0-S15.
-
Selección de canal incorrecta:
- Verifique la tabla de verdad para las configuraciones S0-S3.
- Asegúrese de que el pin EN esté conectado a GND para la activación.
-
Lecturas intermitentes:
- Agregue un pequeño retraso (
time.sleep(0.1)
) entre los canales de conmutación para permitir la estabilización de la señal.
- Agregue un pequeño retraso (
Conclusión
El CD74HC4067 Multiplexor es una forma poderosa y rentable de expandir las capacidades de entrada/salida de Raspberry Pi. Siguiendo esta guía, puede interactuar fácilmente con hasta 16 dispositivos analógicos o digitales utilizando solo 4 pines GPIO. ¡Experimente con varios sensores y aplicaciones para aprovechar al máximo este módulo versátil! 🚀