CD74HC4067 este un multiplexor/demultiplexer analog/digital cu 16 canale care vă permite să extindeți numărul de pini de intrare sau ieșire pe Arduino. Este util în special în proiectele care necesită mai mulți senzori, butoane sau LED -uri, în timp ce minimizează utilizarea pinului. Acest tutorial vă va ghida prin conectarea și utilizarea CD74HC4067 cu Arduino.
Ce vei avea nevoie
- CD74HC4067 Modul multiplexor sau IC
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Senzori, butoane sau LED -uri pentru testare
- Tablă de pâine și jumper
- Un computer cu IDE Arduino instalat
Pasul 1: Înțelegerea CD74HC4067
CD74HC4067 acționează ca un comutator care conectează unul dintre cei 16 pini de intrare/ieșire la un singur pin comun. Puteți controla ce canal este activ folosind 4 pini de control (S0 până la S3).
Pinout
Ac | Funcţie |
---|---|
VCC | Sursă de alimentare (3,3V sau 5V) |
GND | Sol |
S0, S1, S2, S3 | Pinii de control (pentru a selecta canalul activ) |
Ro | Activați pin (activ scăzut; conectați -vă la GND pentru a activa) |
Com | Pinul I/O comun (conectați -vă la Arduino) |
CH0-CH15 | Canale 0 la 15 (conectați -vă la senzori, butoane sau LED -uri) |
Pasul 2: Cablarea CD74HC4067 către Arduino
Iată cum să conectați CD74HC4067 la un Arduino Uno:
Pin CD74HC4067 | Pinul Arduino |
---|---|
VCC | 5V |
GND | GND |
S0 | Pinul 8 |
S1 | Pinul 9 |
S2 | Pinul 10 |
S3 | Pinul 11 |
Ro | GND |
Com | A0 (pentru citirea semnalelor analogice) |
CH0-CH15 | Senzori, LED -uri sau butoane |
Pasul 3: Încărcați codul
Următorul exemplu demonstrează cum să citiți valorile analogice de la senzorii conectați la CD74HC4067:
Cod de exemplu
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
}
Pasul 4: Testați configurarea
- Conectați Arduino la computer prin USB.
- Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
- Încărcați codul făcând clic pe Încărcați.
- Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la
9600
. - Observați valorile analogice pentru fiecare canal afișat în monitorul serial.
Opțional: LED -urile de control
Pentru a controla LED -urile conectate la canale, modificați codul pentru a ieși semnale digitale în loc să citiți intrări analogice. De exemplu:
Cod de exemplu pentru LED -uri
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
}
}
Aplicațiile CD74HC4067
- Extinderea intrărilor/ieșirilor analogice și digitale
- Citirea mai multor senzori cu pini limitați
- Construirea matricilor cu butoane mari
- Controlul mai multor LED -uri sau relee
Depanare
-
Fără răspuns de la canale: Verificați conexiunile PIN de control și asigurați -vă
EN
PIN -ul este conectat la GND. -
Selecție incorectă a canalului: Verificați
selectChannel()
Logică pentru setarea pinilor S0-S3. - Citiri instabile: Asigurați o împământare adecvată și sursă de alimentare stabilă pentru senzori.
Concluzie
Ați interfațat cu succes multiplexorul CD74HC4067 cu Arduino. Acest modul versatil vă permite să extindeți în mod semnificativ capacitățile de intrare și ieșire ale lui Arduino, ceea ce îl face ideal pentru proiecte care implică mai mulți senzori, butoane sau LED -uri. Experimentați cu diferite configurații și explorați potențialul său maxim!