Arduino ile CD74HC4067 Multiplexer nasıl kullanılır

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067, Arduino'nuzdaki giriş veya çıkış pinlerinin sayısını genişletmenizi sağlayan 16 kanallı bir analog/dijital çoklayıcı/Demultiplexer'dır. Özellikle PIN kullanımını en aza indirirken birden fazla sensör, düğme veya LED gerektiren projelerde yararlıdır. Bu öğretici, CD74HC4067'yi Arduino ile bağlama ve kullanarak size rehberlik edecektir.


Ne İhtiyacınız Olacak

  1. CD74HC4067 Multiplexer Modülü veya IC
  2. Arduino Kurulu (örn. UNO, Mega, Nano)
  3. Test için sensörler, düğmeler veya LED'ler
  4. Breadboard ve jumper telleri
  5. Arduino IDE kurulu bir bilgisayar

Adım 1: CD74HC4067'yi anlamak

CD74HC4067, 16 giriş/çıkış piminden birini tek bir ortak pime bağlayan bir anahtar görevi görür. 4 kontrol pimi (S0 ila S3) kullanarak hangi kanalın etkin olduğunu kontrol edebilirsiniz.

Pinout

Pin İşlev
VCC Güç kaynağı (3.3V veya 5V)
Gnd Zemin
S0, S1, S2, S3 Kontrol pimleri (aktif kanalı seçmek için)
En Pin'i etkinleştirin (etkin düşük; etkinleştirmek için GND'ye bağlayın)
Com Ortak G/Ç Pimi (Arduino'ya bağlan)
CH0-CH15 Kanallar 0 ila 15 (sensörlere, düğmelere veya LED'lere bağlanın)

Adım 2: CD74HC4067'nin Arduino'ya bağlanması

CD74HC4067'yi bir Arduino Uno'ya nasıl bağlayacağınız aşağıda açıklanmıştır:

CD74HC4067 PIN Arduino pimi
VCC 5V
Gnd Gnd
S0 Pim 8
S1 Pin 9
S2 Pim 10
S3 Pim 11
En Gnd
Com A0 (analog sinyalleri okumak için)
CH0-CH15 Sensörler, LED'ler veya düğmeler

Adım 3: Kodu yükleyin

Aşağıdaki örnek, CD74HC4067'ye bağlı sensörlerden analog değerlerin nasıl okunacağını gösterir:

Örnek Kodu

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. Adım: Kurulumu test edin

  1. Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
  2. Arduino IDE'yi açın ve doğru seçin Pano Ve Liman altında Aletler menü.
  3. Kodu tıklayarak yükleyin Yüklemek.
  4. Seri monitörü açın (Aletler > Seri monitör) ve baud hızını ayarlayın 9600.
  5. Seri monitörde görüntülenen her kanal için analog değerleri gözlemleyin.

İsteğe bağlı: LED'leri kontrol etmek

Kanallara bağlı LED'leri kontrol etmek için, analog girişleri okumak yerine kodu dijital sinyalleri çıktıya değiştirin. Örneğin:

LED'ler için Örnek Kodu

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
  }
}

CD74HC4067 uygulamaları

  1. Genişleyen analog ve dijital girişler/çıkışlar
  2. Sınırlı pimlerle birden çok sensör okumak
  3. Büyük Düğme Matrisleri Oluşturma
  4. Birden çok LED veya röleyi kontrol etmek

Sorun giderme

  • Kanallardan yanıt yok: Kontrol pimi bağlantılarını doğrulayın ve EN Pim GND'ye bağlanır.
  • Yanlış Kanal Seçimi: Kontrol et selectChannel() S0-S3 pimlerini ayarlamak için mantık.
  • Kararsız okumalar: Sensörler için uygun topraklama ve kararlı güç kaynağını sağlayın.

Çözüm

CD74HC4067 multipleksleyicisini Arduino ile başarıyla arayüz ettiniz. Bu çok yönlü modül, Arduino'nun giriş ve çıkış özelliklerini önemli ölçüde genişletmenizi sağlar, bu da onu birden fazla sensör, düğme veya LED içeren projeler için ideal hale getirir. Farklı konfigürasyonları deneyin ve tam potansiyelini keşfedin!

Yorum bırak

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.