Come utilizzare il multiplexer CD74HC4067 con Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067 è un multiplexer/Demultiplexer Digital a 16 canali che consente di espandere il numero di pin di input o output sul tuo Arduino. È particolarmente utile nei progetti che richiedono più sensori, pulsanti o LED minimizzando l'utilizzo dei pin. Questo tutorial ti guiderà attraverso la connessione e l'utilizzo del CD74HC4067 con Arduino.


Cosa avrai bisogno

  1. Modulo multiplexer CD74HC4067 o IC
  2. Arduino Board (ad es. Uno, Mega, Nano)
  3. Sensori, pulsanti o LED per il test
  4. Breadboard e fili jumper
  5. Un computer con l'IDE Arduino installato

Passaggio 1: Comprensione del CD74HC4067

Il CD74HC4067 funge da interruttore che collega uno dei suoi 16 pin di ingresso/output a un singolo pin comune. È possibile controllare quale canale è attivo utilizzando 4 pin di controllo (da S0 a S3).

Pinout

Spillo Funzione
VCC Alimentazione (3.3V o 5V)
GND Terra
S0, S1, S2, S3 Pin di controllo (per selezionare il canale attivo)
En Abilita PIN (attivo basso; connettersi a GND per abilitare)
Com Pin I/O comune (connettiti ad Arduino)
CH0-CH15 Canali da 0 a 15 (connettiti a sensori, pulsanti o LED)

Passaggio 2: Cablaggio del CD74HC4067 ad Arduino

Ecco come collegare CD74HC4067 a un Arduino Uno:

PIN CD74HC4067 Arduino Pin
VCC 5v
GND GND
S0 Pin 8
S1 Pin 9
S2 Pin 10
S3 Pin 11
En GND
Com A0 (per leggere segnali analogici)
CH0-CH15 Sensori, LED o pulsanti

Passaggio 3: caricare il codice

L'esempio seguente dimostra come leggere i valori analogici dai sensori collegati al CD74HC4067:

Codice di esempio

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
}

Passaggio 4: testare l'installazione

  1. Collega l'Arduino al tuo computer tramite USB.
  2. Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
  3. Carica il codice facendo clic Caricamento.
  4. Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su 9600.
  5. Osservare i valori analogici per ciascun canale visualizzato nel monitor seriale.

Opzionale: i LED di controllo

Per controllare i LED collegati ai canali, modificare il codice in output segnali digitali anziché leggere gli ingressi analogici. Per esempio:

Codice di esempio per 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
  }
}

Applicazioni del CD74HC4067

  1. Ingresso/output analogici e digitali in espansione
  2. Leggendo più sensori con pin limitati
  3. Costruire matrici di bottoni di grandi dimensioni
  4. Controllo di più LED o relè

Risoluzione dei problemi

  • Nessuna risposta dai canali: Verificare le connessioni del pin di controllo e assicurarsi EN Il pin è collegato a GND.
  • Selezione errata del canale: Controlla il selectChannel() Logica per l'impostazione di pin S0-S3.
  • Letture instabili: Garantire la messa a terra adeguata e l'alimentazione stabile per i sensori.

Conclusione

Hai interfacciato correttamente il multiplexer CD74HC4067 con Arduino. Questo modulo versatile ti consente di espandere significativamente le capacità di input e output di Arduino, rendendolo ideale per i progetti che coinvolgono più sensori, pulsanti o LED. Sperimenta diverse configurazioni ed esplora il suo pieno potenziale!

Lascia un commento

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.