Cara menggunakan multiplexer CD74HC4067 dengan Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

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

  1. Modul atau IC multiplexer CD74HC4067
  2. Dewan Arduino (mis., Uno, mega, nano)
  3. Sensor, tombol, atau LED untuk pengujian
  4. Papan tempat memotong papan dan kabel jumper
  5. 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

  1. Hubungkan Arduino ke komputer Anda melalui USB.
  2. Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
  3. Unggah kode dengan mengklik Mengunggah.
  4. Buka monitor serial (Peralatan > Monitor serial) dan atur baud rate ke 9600.
  5. 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

  1. Memperluas input/output analog dan digital
  2. Membaca banyak sensor dengan pin terbatas
  3. Membangun Matriks Tombol Besar
  4. 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!

Tinggalkan komentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.