Como usar o multiplexador CD74HC4067 com Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

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á

  1. CD74HC4067 Módulo multiplexador ou IC
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Sensores, botões ou LEDs para testar
  4. Fios de pão e jumper
  5. 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

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código clicando Carregar.
  4. Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como 9600.
  5. 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

  1. Expandindo entradas/saídas analógicas e digitais
  2. Lendo vários sensores com pinos limitados
  3. Construindo matrizes de botão grande
  4. 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!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.