O CD74HC4067 é um multiplexador analógico/digital de 16 canais que permite expandir o número de pinos de entrada ou saída no seu Arduino. É particularmente útil em projetos que exigem vários sensores, botões ou LEDs, minimizando o uso de pinos. Este tutorial o guiará através da conexão e do uso do CD74HC4067 com o Arduino.
O que você precisará
- CD74HC4067 Módulo multiplexador ou IC
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Sensores, botões ou LEDs para testar
- Fios de pão e jumper
- Um computador com o Arduino IDE instalado
Etapa 1: Compreendendo o CD74HC4067
O CD74HC4067 atua como um comutador que conecta um dos seus 16 pinos de entrada/saída a um único pino comum. Você pode controlar qual canal está ativo usando 4 pinos de controle (S0 a S3).
Pinout
Alfinete | Função |
---|---|
VCC | Fonte de alimentação (3,3V ou 5V) |
Gnd | Chão |
S0, S1, S2, S3 | Pinos de controle (para selecionar o canal ativo) |
En | Ativar pino (ativo baixo; conecte -se ao GND para ativar) |
Com | PIN de E/S comum (conecte -se ao Arduino) |
CH0-CH15 | Canais 0 a 15 (conecte -se a sensores, botões ou LEDs) |
Etapa 2: Fiação do CD74HC4067 para Arduino
Veja como conectar o CD74HC4067 a um Arduino Uno:
CD74HC4067 PIN | Pino Arduino |
---|---|
VCC | 5V |
Gnd | Gnd |
S0 | Pino 8 |
S1 | Pino 9 |
S2 | Pino 10 |
S3 | Pino 11 |
En | Gnd |
Com | A0 (para ler sinais analógicos) |
CH0-CH15 | Sensores, LEDs ou botões |
Etapa 3: Carregue o código
O exemplo a seguir demonstra como ler valores analógicos de sensores conectados ao CD74HC4067:
Código de exemplo
const int s0 = 8; // Control pin S0
const int s1 = 9; // Control pin S1
const int s2 = 10; // Control pin S2
const int s3 = 11; // Control pin S3
const int comPin = A0; // Common pin connected to A0
void setup() {
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 16; i++) {
selectChannel(i); // Select the active channel
int sensorValue = analogRead(comPin); // Read the value from the sensor
Serial.print("Channel ");
Serial.print(i);
Serial.print(": ");
Serial.println(sensorValue);
delay(500); // Small delay for readability
}
}
void selectChannel(int channel) {
digitalWrite(s0, channel & 0x01); // Set S0
digitalWrite(s1, (channel >> 1) & 0x01); // Set S1
digitalWrite(s2, (channel >> 2) & 0x01); // Set S2
digitalWrite(s3, (channel >> 3) & 0x01); // Set S3
}
Etapa 4: teste a configuração
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código clicando Carregar.
- Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como
9600
. - Observe os valores analógicos para cada canal que está sendo exibido no monitor serial.
Opcional: Controle de LEDs
Para controlar os LEDs conectados aos canais, modifique o código para produzir sinais digitais em vez de ler entradas analógicas. Por exemplo:
Exemplo Código para LEDs
void loop() {
for (int i = 0; i < 16; i++) {
selectChannel(i);
digitalWrite(comPin, HIGH); // Turn on LED on the active channel
delay(500);
digitalWrite(comPin, LOW); // Turn off LED
}
}
Aplicações do CD74HC4067
- Expandindo entradas/saídas analógicas e digitais
- Lendo vários sensores com pinos limitados
- Construindo matrizes de botão grande
- Controlando vários LEDs ou relés
Solução de problemas
-
Nenhuma resposta dos canais: Verifique as conexões do pino de controle e verifique se o
EN
O pino está conectado ao GND. -
Seleção incorreta de canal: Verifique o
selectChannel()
Lógica para definir pinos S0-S3. - Leituras instáveis: Garanta o aterramento adequado e a fonte de alimentação estável para os sensores.
Conclusão
Você interfigurou com sucesso o multiplexador CD74HC4067 com o Arduino. Este módulo versátil permite expandir significativamente os recursos de entrada e saída do seu Arduino, tornando -o ideal para projetos que envolvem vários sensores, botões ou LEDs. Experimente diferentes configurações e explore todo o seu potencial!