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
- CD74HC4067 Módulo de multiplexor o IC
- Arduino Board (por ejemplo, Uno, Mega, Nano)
- Sensores, botones o LED para realizar pruebas
- Cables de placa y jersey
- 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
- Conecte el Arduino a su computadora a través de USB.
- Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
- Cargar el código haciendo clic en Subir.
- Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en
9600
. - 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
- Ampliando entradas/salidas analógicas y digitales
- Leer múltiples sensores con alfileres limitados
- Construyendo matrices de botones grandes
- 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!