A CD74HC4067 egy 16-csatornás analóg/digitális multiplexer/Demultiplexer, amely lehetővé teszi az Arduino bemeneti vagy kimeneti csapjainak kibővítését. Különösen hasznos olyan projektekben, amelyek több érzékelőt, gombot vagy LED -t igényelnek, miközben minimalizálják a PIN -kódot. Ez az oktatóanyag vezeti a CD74HC4067 csatlakoztatását és használatát az Arduino -val.
Mire lesz szüksége
- CD74HC4067 Multiplexer modul vagy IC
- Arduino Board (például Uno, Mega, Nano)
- Érzékelők, gombok vagy LED -ek a teszteléshez
- Kenyérlemez és jumper vezetékek
- Egy számítógép, amelyen az Arduino IDE telepített
1. lépés: A CD74HC4067 megértése
A CD74HC4067 kapcsolóként működik, amely a 16 bemeneti/kimeneti csapját egyetlen közös PIN -hez köti össze. Vezérelheti, hogy melyik csatorna aktív 4 vezérlőcsapot (S0 - S3).
Poggyász
Csap | Funkció |
---|---|
VCC | Tápegység (3,3 V vagy 5 V) |
GND | Föld |
S0, S1, S2, S3 | Vezérlőcsapok (az aktív csatorna kiválasztásához) |
Hüvelyes | Engedélyezze a PIN -kódot (aktív alacsony; csatlakozzon a GND -hez az engedélyezéshez) |
Com | Általános I/O PIN (csatlakozzon az Arduino -hoz) |
CH0-CH15 | A 0–15. Csatornák (csatlakozzon az érzékelőkhöz, gombokhoz vagy LED -ekhez) |
2. lépés: A CD74HC4067 vezetékesítése Arduino -ra
Így lehet csatlakoztatni a CD74HC4067 -et egy Arduino UNO -hoz:
CD74HC4067 PIN | Arduino Pin |
---|---|
VCC | 5 V -os |
GND | GND |
S0 | 8. érintkező |
S1 | 9. érintkező |
S2 | 10. érintkező |
S3 | 11. érintkező |
Hüvelyes | GND |
Com | A0 (analóg jelek olvasásához) |
CH0-CH15 | Érzékelők, LED -ek vagy gombok |
3. lépés: Töltse fel a kódot
A következő példa bemutatja, hogyan lehet olvasni az analóg értékeket a CD74HC4067 -hez csatlakoztatott érzékelőkből:
Példakód
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
}
4. lépés: Tesztelje a beállítást
- Csatlakoztassa az Arduino -t a számítógépéhez USB -n keresztül.
- Nyissa meg az Arduino IDE -t, és válassza ki a megfelelőt Bizottság és Kikötő a Szerszámok menü.
- Töltse fel a kódot kattintással Feltöltés.
- Nyissa meg a soros monitort (Szerszámok > Soros monitor) és állítsa be az adatátviteli sebességet
9600
. - Vegye figyelembe az egyes csatornák analóg értékeit a soros monitorban.
Opcionális: A LED -ek vezérlése
A csatornákhoz csatlakoztatott LED -ek vezérléséhez módosítsa a kódot digitális jelek kimenetére az analóg bemenetek olvasása helyett. Például:
Példakód a LED -ekhez
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
}
}
A CD74HC4067 alkalmazásai
- Az analóg és digitális bemenetek/kimenetek bővítése
- Több érzékelő olvasása korlátozott csapokkal
- Nagy gombmátrixok építése
- Több LED vagy relék vezérlése
Hibaelhárítás
-
Nincs válasz a csatornákból: Ellenőrizze a vezérlőcsap csatlakozásait és biztosítja a
EN
A PIN -kód csatlakozik a GND -hez. -
Helytelen csatorna kiválasztása: Ellenőrizze a
selectChannel()
Logika az S0-S3 csapok beállításához. - Instabil olvasmányok: Gondoskodjon az érzékelők megfelelő földeléséhez és stabil tápegységéhez.
Következtetés
Sikeresen összekapcsolja a CD74HC4067 multiplexert az Arduino -val. Ez a sokoldalú modul lehetővé teszi az Arduino bemeneti és kimeneti képességeinek jelentős kibővítését, így ideálissá teszi a több érzékelőt, gombot vagy LED -eket bevonó projektekhez. Kísérletezzen különböző konfigurációkkal, és fedezze fel annak teljes potenciálját!