كيفية استخدام مضاعف CD74HC4067 مع Arduino

How to Use the CD74HC4067 Multiplexer with Arduino

CD74HC4067 عبارة عن مضاعف/demultiplexer التناظري/الرقمي المكون من 16 قناة والذي يسمح لك بتوسيع عدد دبابيس الإدخال أو الإخراج على Arduino. إنه مفيد بشكل خاص في المشاريع التي تتطلب أجهزة استشعار أو أزرار أو مصابيح LED متعددة مع تقليل استخدام الدبوس. سوف يرشدك هذا البرنامج التعليمي من خلال الاتصال واستخدام CD74HC4067 مع Arduino.


ماذا ستحتاج

  1. CD74HC4067 MULITIONSER MODULE أو IC
  2. لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
  3. أجهزة الاستشعار أو الأزرار أو المصابيح للاختبار
  4. الأسلاك الأسلاك والبلوز
  5. جهاز كمبيوتر مع Arduino IDE مثبت

الخطوة 1: فهم CD74HC4067

يعمل CD74HC4067 كمفتاح يربط أحد دبابيس الإدخال/الإخراج الـ 16 إلى دبوس مشترك واحد. يمكنك التحكم في القناة النشطة باستخدام 4 دبابيس تحكم (S0 إلى S3).

pinout

دبوس وظيفة
VCC مزود الطاقة (3.3V أو 5V)
GND أرضي
S0 ، S1 ، S2 ، S3 دبابيس التحكم (لتحديد القناة النشطة)
en تمكين دبوس (انخفاض نشط ؛ اتصل بـ GND لتمكين)
كوم دبوس I/O الشائع (الاتصال بـ Arduino)
CH0-CH15 القنوات من 0 إلى 15 (اتصل بأجهزة الاستشعار أو الأزرار أو المصابيح)

الخطوة 2: توصيل CD74HC4067 إلى Arduino

إليك كيفية توصيل CD74HC4067 بأردوينو أونو:

CD74HC4067 دبوس دبوس أردوينو
VCC 5V
GND GND
S0 دبوس 8
S1 دبوس 9
S2 دبوس 10
S3 دبوس 11
en GND
كوم A0 (لقراءة الإشارات التناظرية)
CH0-CH15 أجهزة الاستشعار أو المصابيح أو الأزرار

الخطوة 3: تحميل الرمز

يوضح المثال التالي كيفية قراءة القيم التناظرية من أجهزة الاستشعار المتصلة بـ CD74HC4067:

رمز مثال

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: اختبار الإعداد

  1. قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
  2. افتح Arduino IDE وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
  3. تحميل الرمز بالنقر فوق رفع.
  4. افتح الشاشة التسلسلية (أدوات > المراقبة التسلسلية) وتعيين معدل باود 9600.
  5. راقب القيم التناظرية لكل قناة يتم عرضها في الشاشة التسلسلية.

اختياري: التحكم في المصابيح

للتحكم في مصابيح LED المتصلة بالقنوات ، قم بتعديل الكود لإخراج الإشارات الرقمية بدلاً من قراءة المدخلات التناظرية. على سبيل المثال:

رمز مثال لمصابيح LEDS

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

  1. توسيع المدخلات/المخرجات التناظرية والرقمية
  2. قراءة أجهزة استشعار متعددة مع دبابيس محدودة
  3. بناء مصفوفات زر كبيرة
  4. السيطرة على مصابيح LED أو المرحلات المتعددة

استكشاف الأخطاء وإصلاحها

  • لا استجابة من القنوات: تحقق من اتصالات دبوس التحكم وتأكد من EN PIN متصل بـ GND.
  • اختيار القناة غير صحيح: تحقق من selectChannel() منطق إعداد دبابيس S0-S3.
  • قراءات غير مستقرة: ضمان التأريض المناسب ومزود الطاقة المستقرة للأجهزة الاستشعار.

خاتمة

لقد نجحت في ربط Multiplexer CD74HC4067 مع Arduino. تتيح لك هذه الوحدة متعددة الاستخدامات توسيع قدرات إدخال وإخراج Arduino بشكل كبير ، مما يجعلها مثالية للمشاريع التي تتضمن أجهزة استشعار أو أزرار أو مصابيح LED متعددة. تجربة مع تكوينات مختلفة واستكشاف إمكاناتها الكاملة!

اترك تعليقًا

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.