O CD74HC4067 é um multiplexador analógico/digital de 16 canais que permite que um Raspberry Pi intera 16 entradas ou saídas Usando apenas alguns pinos GPIO. É perfeito para expandir os recursos de E/S do seu Raspberry Pi ao trabalhar com vários sensores ou dispositivos.
O que você precisará
- Raspberry Pi (Qualquer modelo com suporte GPIO, por exemplo, PI 3, PI 4)
- Multiplexador CD74HC4067
- Dispositivos de entrada analógicos ou digitais (por exemplo, sensores, interruptores)
- Fios de pão e jumper
- Python instalado No Raspberry Pi
Etapa 1: Compreendendo o CD74HC4067
O CD74HC4067 tem:
- 16 canais de entrada/saída (S0-S15)
- 4 pinos de controle (S0, S1, S2, S3) para selecionar o canal ativo.
- 1 Ativar pino (en) Para ativar o multiplexador (ativo baixo).
- Um único Pino com (comum) para comunicação compartilhada.
Tabela de verdade para a seleção de canais
S3 | S2 | S1 | S0 | Canal ativo |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | S1 |
0 | 0 | 1 | 0 | S2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
Etapa 2: Fiação do CD74HC4067 para o Raspberry Pi
Conecte o multiplexador ao Raspberry Pi da seguinte forma:
CD74HC4067 PIN | Pino de framboesa pi |
---|---|
VCC | 3.3V (pino 1) |
Gnd | GND (pino 6) |
S0 | Gpio17 (pino 11) |
S1 | Gpio27 (pino 13) |
S2 | GPIO22 (pino 15) |
S3 | Gpio23 (pino 16) |
En | GND (ativo baixo) |
Com | Gpio18 (pino 12, entrada/saída analógica) |
S0-S15 | Conectar sensores/dispositivos |
Etapa 3: Instale as bibliotecas necessárias
Atualize seu Raspberry Pi e instale as bibliotecas Python para controle GPIO.
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
Etapa 4: Código Python para ler dados do multiplexador
Aqui está um script python para controlar o CD74HC4067 e ler dados dos canais conectados.
Exemplo de código 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()
Etapa 5: Aplicações do CD74HC4067 com Raspberry Pi
- Lendo vários sensores: Interface com até 16 sensores (por exemplo, temperatura, umidade ou luz).
- Expandindo E/S digital: Gerencie vários comutadores, LEDs ou relés.
- Integração do sensor analógico: Leia sinais de potenciômetros, joysticks ou sensores de umidade do solo.
- Automação residencial: Controle vários dispositivos como luzes, ventiladores ou aparelhos.
Solução de problemas
-
Sem dados de canais:
- Verifique a fiação dos pinos de controle S0-S3 e o pino COM.
- Verifique se os sensores/dispositivos estão conectados corretamente aos pinos S0-S15.
-
Seleção incorreta do canal:
- Verifique a tabela de verdade para as configurações S0-S3.
- Verifique se o pino está conectado ao GND para ativação.
-
Leituras intermitentes:
- Adicione um pequeno atraso (
time.sleep(0.1)
) entre os canais de comutação para permitir a estabilização do sinal.
- Adicione um pequeno atraso (
Conclusão
O Multiplexador CD74HC4067 é uma maneira poderosa e econômica de expandir os recursos de entrada/saída do Raspberry Pi. Seguindo este guia, você pode interface facilmente com até 16 dispositivos analógicos ou digitais usando apenas 4 pinos GPIO. Experimente vários sensores e aplicações para aproveitar ao máximo este módulo versátil! 🚀