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
- CD74HC4067 Multiplexer Modülü veya IC
- Arduino Kurulu (örn. UNO, Mega, Nano)
- Test için sensörler, düğmeler veya LED'ler
- Breadboard ve jumper telleri
- 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
- Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
- Arduino IDE'yi açın ve doğru seçin Pano Ve Liman altında Aletler menü.
- Kodu tıklayarak yükleyin Yüklemek.
- Seri monitörü açın (Aletler > Seri monitör) ve baud hızını ayarlayın
9600
. - 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ı
- Genişleyen analog ve dijital girişler/çıkışlar
- Sınırlı pimlerle birden çok sensör okumak
- Büyük Düğme Matrisleri Oluşturma
- 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!