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
- CD74HC4067 multiplexormodul eller IC
- Arduino Board (t.ex. Uno, Mega, Nano)
- Sensorer, knappar eller lysdioder för testning
- Breadboard och jumpertrådar
- 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
- Anslut Arduino till din dator via USB.
- Öppna Arduino IDE och välj rätt Styrelse och Hamn under Verktyg meny.
- Ladda upp koden genom att klicka Ladda upp.
- Öppna seriell monitor (Verktyg > Serieövervakare) och ställ in baudhastigheten till
9600
. - 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
- Expandera analoga och digitala ingångar/utgångar
- Läser flera sensorer med begränsade stift
- Bygga stora knappmatriser
- 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!