Hur man använder CD74HC4067 multiplexer med Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067 är en 16-kanals analog/digital multiplexer/demultiplexer som gör att du kan utöka antalet ingångs- eller utgångsstift på din Arduino. Det är särskilt användbart i projekt som kräver flera sensorer, knappar eller lysdioder samtidigt som du minimerar stiftanvändningen. Denna handledning kommer att leda dig genom att ansluta och använda CD74HC4067 med Arduino.


Vad du behöver

  1. CD74HC4067 multiplexormodul eller IC
  2. Arduino Board (t.ex. Uno, Mega, Nano)
  3. Sensorer, knappar eller lysdioder för testning
  4. Breadboard och jumpertrådar
  5. En dator med Arduino Ide installerad

Steg 1: Förstå CD74HC4067

CD74HC4067 fungerar som en switch som ansluter en av dess 16 ingångs-/utgångsstift till en enda gemensam stift. Du kan styra vilken kanal som är aktiv med 4 styrstift (S0 till S3).

Pinout

Stift Fungera
Vcc Strömförsörjning (3.3V eller 5V)
Gard Jord
S0, S1, S2, S3 Kontrollstift (för att välja den aktiva kanalen)
Sv Aktivera stift (aktiv låg; anslut till GND för att aktivera)
Com Vanlig I/O -stift (anslut till Arduino)
CH0-CH15 Kanaler 0 till 15 (anslut till sensorer, knappar eller lysdioder)

Steg 2: Kopplar CD74HC4067 till Arduino

Så här ansluter du CD74HC4067 till en Arduino Uno:

CD74HC4067 -stift Arduinosnål
Vcc 5V
Gard Gard
S0 Stift 8
S1 Stift 9
S2 Stift 10
S3 Stift 11
Sv Gard
Com A0 (för att läsa analoga signaler)
CH0-CH15 Sensorer, lysdioder eller knappar

Steg 3: Ladda upp koden

Följande exempel visar hur man läser analoga värden från sensorer anslutna till CD74HC4067:

Exempelkod

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
}

Steg 4: Testa installationen

  1. Anslut Arduino till din dator via USB.
  2. Öppna Arduino IDE och välj rätt Styrelse och Hamn under Verktyg meny.
  3. Ladda upp koden genom att klicka Ladda upp.
  4. Öppna seriell monitor (Verktyg > Serieövervakare) och ställ in baudhastigheten till 9600.
  5. Observera de analoga värdena för varje kanal som visas i seriell monitor.

Valfritt: Styrande lysdioder

För att kontrollera lysdioder anslutna till kanalerna, ändra koden för att mata ut digitala signaler istället för att läsa analoga ingångar. Till exempel:

Exempelkod för lysdioder

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

Applikationer av CD74HC4067

  1. Expandera analoga och digitala ingångar/utgångar
  2. Läser flera sensorer med begränsade stift
  3. Bygga stora knappmatriser
  4. Kontrollerar flera lysdioder eller reläer

Felsökning

  • Inget svar från kanaler: Verifiera kontrollstiftanslutningarna och se till EN PIN är ansluten till GND.
  • Felaktigt val av kanal: Kontrollera selectChannel() Logik för att ställa in S0-S3-stift.
  • Instabila avläsningar: Säkerställa korrekt jordning och stabil strömförsörjning för sensorer.

Slutsats

Du har framgångsrikt interfogat CD74HC4067 multiplexer med Arduino. Denna mångsidiga modul gör att du kan utöka din Arduinos ingångs- och utgångsfunktioner avsevärt, vilket gör den idealisk för projekt som involverar flera sensorer, knappar eller lysdioder. Experimentera med olika konfigurationer och utforska dess fulla potential!

Lämna en kommentar

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.