الحصول على تسليم مجانا على جميع الطلبات أكثر من 20 جنيه!

باستخدام مضاعف CD74HC4067 مع Raspberry Pi

Using the CD74HC4067 Multiplexer with the Raspberry Pi

الـ CD74HC4067 هو مُبدِّل متعدد 16 قناة تماثلية/رقمية يتيح لـ Raspberry Pi الاتصال بما يصل إلى 16 مُدخلات أو مُخرجات باستخدام عدد قليل فقط من دبابيس GPIO. إنه مثالي لتوسيع قدرات الإدخال/الإخراج على Raspberry Pi عند العمل مع عدة حساسات أو أجهزة.


ما ستحتاج إليه

  1. راسبيري باي (أي طراز مزوّد بدعم GPIO، مثل Pi 3، Pi 4)
  2. CD74HC4067 مُبدِّل إشارة متعدد (مُضاعِف)
  3. أجهزة الإدخال التناظرية أو الرقمية (على سبيل المثال، أجهزة استشعار، مفاتيح)
  4. لوحة تجارب وأسلاك توصيل
  5. تم تثبيت Python على Raspberry Pi

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

الـ CD74HC4067 لديه:

  • 16 قنوات إدخال/إخراج (S0-S15)
  • 4 دبابيس تحكم (S0، S1، S2، S3) لتحديد القناة النشطة.
  • 1 تمكين PIN (EN) لتنشيط المُضاعِد (نشط على LOW).
  • واحد دبوس COM (مشترك) للتواصل المشترك

جدول الحقيقة لاختيار القناة

S3 S2 S1 S0 القناة النشطة
0 ` 0 0 S0
0 0 0 1 S1
0 0 1 0 S2
... ... ... ... ...
1 1 1 1 S15

الخطوة 2: توصيل الأسلاك CD74HC4067 إلى Raspberry Pi

قم بتوصيل المُبدِّل (multiplexer) إلى Raspberry Pi كما يلي:

CD74HC4067 دبوس دبوس Raspberry Pi
VCC 3.3V (الدبوس 1)
أرضي GND (الدبوس 6)
S0 GPIO17 (الدبوس 11)
S1 GPIO27 (الدبوس 13)
S2 GPIO22 (السن 15)
S3 GPIO23 (الدبوس 16)
EN GND (نشط عند المستوى المنخفض)
شركة GPIO18 (الدبوس 12، إدخال/إخراج تناظري)
S0-S15 توصيل المستشعرات/الأجهزة

الخطوة 3: تثبيت المكتبات المطلوبة

حدّث Raspberry Pi الخاص بك وثبّت مكتبات Python للتحكم في GPIO.

sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio

الخطوة 4: كود Python لقراءة البيانات من المُبدِّل (Multiplexer)

إليك برنامج Python للتحكم في CD74HC4067 وقراءة البيانات من القنوات المتصلة.

مثال على كود Python

import RPi.GPIO as GPIO
import time

# Define GPIO pins
S0 = 17
S1 = 27
S2 = 22
S3 = 23
COM = 18  # Common pin for input/output

# Initialize GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup([S0, S1, S2, S3], GPIO.OUT)
GPIO.setup(COM, GPIO.IN)  # Set COM pin as input for reading data

# Function to select a channel
def select_channel(channel):
    GPIO.output(S0, channel & 0x01)
    GPIO.output(S1, (channel >> 1) & 0x01)
    GPIO.output(S2, (channel >> 2) & 0x01)
    GPIO.output(S3, (channel >> 3) & 0x01)

try:
    while True:
        for channel in range(16):
            select_channel(channel)
            time.sleep(0.1)  # Small delay for channel stabilization
            value = GPIO.input(COM)  # Read data from the active channel
            print(f"Channel {channel}: {value}")
        time.sleep(1)
except KeyboardInterrupt:
    print("Exiting...")
finally:
    GPIO.cleanup()

الخطوة 5: تطبيقات الـ CD74HC4067 مع Raspberry Pi

  1. قراءة عدة مستشعرات: واجهة تدعم ما يصل إلى 16 مستشعرًا (مثل درجة الحرارة أو الرطوبة أو الضوء).
  2. توسيع الإدخال/الإخراج الرقمي: إدارة مفاتيح متعددة أو مصابيح LED أو مرحّلات.
  3. تكامل المستشعرات التناظرية: قراءة الإشارات من المقاييس المتغيرة، أو عصي التحكم، أو حساسات رطوبة التربة.
  4. أتمتة المنزل: تحكم في عدة أجهزة مثل الأضواء أو المراوح أو الأجهزة الكهربائية.

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

  1. لا توجد بيانات من القنوات:

    • تحقق من توصيل دبابيس التحكم S0-S3 ودبوس COM.
    • تأكد من توصيل المستشعرات/الأجهزة بشكل صحيح بدبابيس S0-S15.
  2. اختيار قناة غير صحيح:

    • تحقَّق من جدول الحقيقة لتكوينات S0-S3.
    • تأكد من توصيل دبوس EN بـ GND للتفعيل.
  3. قراءات متقطعة:

    • أضف تأخيرًا صغيرًا (time.sleep(0.1)) بين تبديل القنوات للسماح باستقرار الإشارة.

الخلاصة

الـ CD74HC4067 معدل الإرسال المتعدد هي طريقة قوية وفعّالة من حيث التكلفة لتوسيع قدرات الإدخال/الإخراج في Raspberry Pi. باتباع هذا الدليل، يمكنك بسهولة توصيل ما يصل إلى 16 جهازًا تماثليًا أو رقميًا باستخدام 4 دبابيس فقط من GPIO. جرّب مجموعة متنوعة من الحساسات والتطبيقات للاستفادة القصوى من هذه الوحدة متعددة الاستخدامات! 🚀

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.

اترك تعليقًا