Cómo usar el multiplexor CD74HC4067 con Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

El CD74HC4067 es un multiplexor/demultiplexor analógico/digital de 16 canales que le permite expandir el número de pines de entrada o salida en su Arduino. Es particularmente útil en proyectos que requieren múltiples sensores, botones o LED al tiempo que minimiza el uso de PIN. Este tutorial lo guiará a través de la conexión y el uso del CD74HC4067 con Arduino.


Lo que necesitarás

  1. CD74HC4067 Módulo de multiplexor o IC
  2. Arduino Board (por ejemplo, Uno, Mega, Nano)
  3. Sensores, botones o LED para realizar pruebas
  4. Cables de placa y jersey
  5. Una computadora con el Arduino IDE instalado

Paso 1: Comprender el CD74HC4067

El CD74HC4067 actúa como un interruptor que conecta uno de sus 16 pines de entrada/salida a un solo pin común. Puede controlar qué canal está activo usando 4 pines de control (S0 a S3).

Pinout

Alfiler Función
VCC Fuente de alimentación (3.3V o 5V)
Gnd Suelo
S0, S1, S2, S3 Pins de control (para seleccionar el canal activo)
Interno Habilitar PIN (activo bajo; conectarse a GND para habilitar)
Comunicarse Pin de E/S común (conéctese a Arduino)
CH0-Ch15 Canales 0 a 15 (conectarse a sensores, botones o LED)

Paso 2: Cableado el CD74HC4067 a Arduino

Aquí le mostramos cómo conectar el CD74HC4067 a un Arduino Uno:

Pin CD74HC4067 Alfiler de arduino
VCC 5V
Gnd Gnd
S0 Pin 8
S1 Pin 9
S2 Pin 10
S3 Pin 11
Interno Gnd
Comunicarse A0 (para leer señales analógicas)
CH0-Ch15 Sensores, LED o botones

Paso 3: cargar el código

El siguiente ejemplo demuestra cómo leer valores analógicos de sensores conectados al CD74HC4067:

Código de ejemplo

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
}

Paso 4: prueba la configuración

  1. Conecte el Arduino a su computadora a través de USB.
  2. Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
  3. Cargar el código haciendo clic en Subir.
  4. Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en 9600.
  5. Observe los valores analógicos para cada canal que se muestra en el monitor en serie.

Opcional: controladores de LED

Para controlar los LED conectados a los canales, modifique el código para emitir señales digitales en lugar de leer entradas analógicas. Por ejemplo:

Código de ejemplo para LED

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
  }
}

Aplicaciones del CD74HC4067

  1. Ampliando entradas/salidas analógicas y digitales
  2. Leer múltiples sensores con alfileres limitados
  3. Construyendo matrices de botones grandes
  4. Controlar múltiples LED o relés

Solución de problemas

  • Sin respuesta de los canales: Verifique las conexiones del pin de control y asegúrese de la EN El pin está conectado a GND.
  • Selección de canal incorrecta: Revise el selectChannel() Lógica para configurar pines S0-S3.
  • Lecturas inestables: Asegúrese de que la conexión a tierra adecuada y la fuente de alimentación estable para los sensores.

Conclusión

Has interactuado con éxito el multiplexor CD74HC4067 con Arduino. Este módulo versátil le permite expandir significativamente las capacidades de entrada y salida de su Arduino, lo que lo hace ideal para proyectos que involucran múltiples sensores, botones o LED. ¡Experimente con diferentes configuraciones y explore su máximo potencial!

Escribir un comentario

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.