CD74HC4067 عبارة عن مضاعف/demultiplexer التناظري/الرقمي المكون من 16 قناة والذي يسمح لك بتوسيع عدد دبابيس الإدخال أو الإخراج على Arduino. إنه مفيد بشكل خاص في المشاريع التي تتطلب أجهزة استشعار أو أزرار أو مصابيح LED متعددة مع تقليل استخدام الدبوس. سوف يرشدك هذا البرنامج التعليمي من خلال الاتصال واستخدام CD74HC4067 مع Arduino.
ماذا ستحتاج
- CD74HC4067 MULITIONSER MODULE أو IC
- لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
- أجهزة الاستشعار أو الأزرار أو المصابيح للاختبار
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر مع 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: اختبار الإعداد
- قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
- افتح Arduino IDE وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
- تحميل الرمز بالنقر فوق رفع.
- افتح الشاشة التسلسلية (أدوات > المراقبة التسلسلية) وتعيين معدل باود
9600
. - راقب القيم التناظرية لكل قناة يتم عرضها في الشاشة التسلسلية.
اختياري: التحكم في المصابيح
للتحكم في مصابيح 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
- توسيع المدخلات/المخرجات التناظرية والرقمية
- قراءة أجهزة استشعار متعددة مع دبابيس محدودة
- بناء مصفوفات زر كبيرة
- السيطرة على مصابيح LED أو المرحلات المتعددة
استكشاف الأخطاء وإصلاحها
-
لا استجابة من القنوات: تحقق من اتصالات دبوس التحكم وتأكد من
EN
PIN متصل بـ GND. -
اختيار القناة غير صحيح: تحقق من
selectChannel()
منطق إعداد دبابيس S0-S3. - قراءات غير مستقرة: ضمان التأريض المناسب ومزود الطاقة المستقرة للأجهزة الاستشعار.
خاتمة
لقد نجحت في ربط Multiplexer CD74HC4067 مع Arduino. تتيح لك هذه الوحدة متعددة الاستخدامات توسيع قدرات إدخال وإخراج Arduino بشكل كبير ، مما يجعلها مثالية للمشاريع التي تتضمن أجهزة استشعار أو أزرار أو مصابيح LED متعددة. تجربة مع تكوينات مختلفة واستكشاف إمكاناتها الكاملة!