CD74HC4067 adalah multiplexer/demultiplexer analog/digital 16-channel yang memungkinkan Anda untuk memperluas jumlah pin input atau output pada Arduino Anda. Ini sangat berguna dalam proyek yang membutuhkan beberapa sensor, tombol, atau LED sambil meminimalkan penggunaan pin. Tutorial ini akan memandu Anda melalui penghubung dan menggunakan CD74HC4067 dengan Arduino.
Apa yang Anda Butuhkan
- Modul atau IC multiplexer CD74HC4067
- Dewan Arduino (mis., Uno, mega, nano)
- Sensor, tombol, atau LED untuk pengujian
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan IDE Arduino diinstal
Langkah 1: Memahami CD74HC4067
CD74HC4067 bertindak sebagai sakelar yang menghubungkan salah satu dari 16 pin input/output ke pin umum tunggal. Anda dapat mengontrol saluran mana yang aktif menggunakan 4 pin kontrol (S0 ke S3).
Pinout
Pin | Fungsi |
---|---|
Vcc | Catu daya (3.3V atau 5V) |
Gnd | Tanah |
S0, S1, S2, S3 | Pin kontrol (untuk memilih saluran aktif) |
En | Aktifkan pin (aktif rendah; sambungkan ke GND untuk mengaktifkan) |
Com | PIN I/O Common (Sambungkan ke Arduino) |
CH0-CH15 | Saluran 0 hingga 15 (sambungkan ke sensor, tombol, atau LED) |
Langkah 2: Kabel CD74HC4067 ke Arduino
Inilah cara menghubungkan CD74HC4067 ke Arduino UNO:
Pin CD74HC4067 | Pin Arduino |
---|---|
Vcc | 5v |
Gnd | Gnd |
S0 | Pin 8 |
S1 | Pin 9 |
S2 | Pin 10 |
S3 | Pin 11 |
En | Gnd |
Com | A0 (untuk membaca sinyal analog) |
CH0-CH15 | Sensor, LED, atau tombol |
Langkah 3: Unggah kode
Contoh berikut menunjukkan cara membaca nilai analog dari sensor yang terhubung ke CD74HC4067:
Kode contoh
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
}
Langkah 4: Uji pengaturan
- Hubungkan Arduino ke komputer Anda melalui USB.
- Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
- Unggah kode dengan mengklik Mengunggah.
- Buka monitor serial (Peralatan > Monitor serial) dan atur baud rate ke
9600
. - Amati nilai analog untuk setiap saluran yang ditampilkan di monitor serial.
Opsional: Mengontrol LED
Untuk mengontrol LED yang terhubung ke saluran, modifikasi kode untuk mengeluarkan sinyal digital alih -alih membaca input analog. Misalnya:
Contoh kode untuk LED
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
}
}
Aplikasi CD74HC4067
- Memperluas input/output analog dan digital
- Membaca banyak sensor dengan pin terbatas
- Membangun Matriks Tombol Besar
- Mengontrol beberapa LED atau relay
Pemecahan masalah
-
Tidak ada tanggapan dari saluran: Verifikasi koneksi pin kontrol dan pastikan
EN
PIN terhubung ke GND. -
Pilihan saluran yang salah: Periksa
selectChannel()
Logika untuk mengatur pin S0-S3. - Bacaan yang tidak stabil: Pastikan catu daya yang tepat dan stabil untuk sensor.
Kesimpulan
Anda telah berhasil menghubungkan multiplexer CD74HC4067 dengan Arduino. Modul serbaguna ini memungkinkan Anda untuk memperluas kemampuan input dan output Arduino Anda secara signifikan, menjadikannya ideal untuk proyek yang melibatkan banyak sensor, tombol, atau LED. Bereksperimenlah dengan konfigurasi yang berbeda dan jelajahi potensi penuhnya!