De CD74HC4067 is een 16-kanaals analoge/digitale multiplexer/demultiplexer waarmee u het aantal invoer- of uitvoerpennen op uw Arduino kunt uitbreiden. Het is met name handig in projecten die meerdere sensoren, knoppen of LED's vereisen, terwijl het pin -gebruik wordt geminimaliseerd. Deze zelfstudie zal u begeleiden door de CD74HC4067 te verbinden en te gebruiken met Arduino.
Wat u nodig hebt
- CD74HC4067 Multiplexer -module of IC
- Arduino Board (bijv. UNO, Mega, Nano)
- Sensoren, knoppen of LED's voor testen
- Breadboard en jumper draden
- Een computer met de Arduino Ide geïnstalleerd
Stap 1: Inzicht in de CD74HC4067
De CD74HC4067 werkt als een schakelaar die een van de 16 ingangs-/uitvoerpennen verbindt met een enkele gemeenschappelijke pin. U kunt bepalen welk kanaal actief is met behulp van 4 besturingspennen (S0 tot S3).
Uitspraken
Pin | Functie |
---|---|
VCC | Voeding (3.3V of 5V) |
GND | Grond |
S0, S1, S2, S3 | Controlpennen (om het actieve kanaal te selecteren) |
Eng | Schakel pin in (actief laag; verbind met GND om in te schakelen) |
Com | Gemeenschappelijke I/O -pin (verbinding maken met Arduino) |
CH0-CH15 | Kanalen 0 tot 15 (verbinding maken met sensoren, knoppen of LED's) |
Stap 2: de CD74HC4067 bedraden aan Arduino
Hier leest u hoe u de CD74HC4067 verbindt met een Arduino UNO:
CD74HC4067 PIN | Arduino Pin |
---|---|
VCC | 5V |
GND | GND |
S0 | PIN 8 |
S1 | Pin 9 |
S2 | Pin 10 |
S3 | Pin 11 |
Eng | GND |
Com | A0 (voor het lezen van analoge signalen) |
CH0-CH15 | Sensoren, LED's of knoppen |
Stap 3: Upload de code
Het volgende voorbeeld laat zien hoe u analoge waarden kunt lezen van sensoren die zijn verbonden met de CD74HC4067:
Voorbeeldcode
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
}
Stap 4: Test de instelling
- Sluit de Arduino via USB aan op uw computer.
- Open de Arduino IDE en selecteer de juiste Bord En Haven onder de Hulpmiddelen menu.
- Upload de code door te klikken Uploaden.
- Open de seriële monitor (Hulpmiddelen > Serie -monitor) en stel het baudrates in op
9600
. - Bekijk de analoge waarden voor elk kanaal dat wordt weergegeven in de seriële monitor.
Optioneel: LED's beheersen
Om LED's die zijn verbonden met de kanalen te regelen, wijzigt u de code om digitale signalen uit te voeren in plaats van analoge ingangen te lezen. Bijvoorbeeld:
Voorbeeldcode voor LED's
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
}
}
Toepassingen van de CD74HC4067
- Uitbreiding van analoge en digitale ingangen/uitgangen
- Meerdere sensoren lezen met beperkte pennen
- Grote knopmatrices bouwen
- Het beheersen van meerdere LED's of relais
Problemen oplossen
-
Geen reactie van kanalen: Controleer de verbindingen van de besturingspin en zorg voor de
EN
Pin is verbonden met GND. -
Onjuiste kanaalselectie: Controleer de
selectChannel()
Logica voor het instellen van S0-S3-pinnen. - Onstabiele lezingen: Zorg voor de juiste aarding en stabiele voeding voor sensoren.
Conclusie
Je hebt de CD74HC4067 -multiplexer met succes met Arduino gekoppeld. Met deze veelzijdige module kunt u de invoer- en uitvoermogelijkheden van uw Arduino aanzienlijk uitbreiden, waardoor het ideaal is voor projecten met meerdere sensoren, knoppen of LED's. Experimenteer met verschillende configuraties en verken het volledige potentieel ervan!