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

Using the CD74HC4067 Multiplexer with the Raspberry Pi

ال CD74HC4067 هو مضاعفات التناظرية/الرقمية 16 قناة تتيح لـ Raspberry Pi الواجهة مع ما يصل إلى 16 مدخلات أو مخرجات باستخدام عدد قليل من دبابيس GPIO. إنه مثالي لتوسيع إمكانيات I/O لـ Raspberry Pi عند العمل مع أجهزة استشعار أو أجهزة متعددة.


ماذا ستحتاج

  1. التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
  2. CD74HC4067 Multiplexer
  3. أجهزة الإدخال التناظرية أو الرقمية (على سبيل المثال ، أجهزة الاستشعار ، المفاتيح)
  4. الأسلاك الأسلاك والبلوز
  5. بيثون مثبت على التوت PI

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

يحتوي CD74HC4067 على:

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

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

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

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

قم بتوصيل مضاعفة PI Raspberry كما يلي:

CD74HC4067 دبوس التوت بي دبوس
VCC 3.3V (دبوس 1)
GND GND (دبوس 6)
S0 GPIO17 (PIN 11)
S1 GPIO27 (PIN 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 لقراءة البيانات من مضاعف

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

مثال رمز بيثون

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. توسيع I/O الرقمية: إدارة مفاتيح متعددة ، مصابيح LED ، أو المرحلات.
  3. تكامل المستشعر التناظرية: اقرأ إشارات من مقاييس الجهد ، أو عصا التحكم ، أو مستشعرات رطوبة التربة.
  4. أتمتة المنزل: التحكم في أجهزة متعددة مثل الأضواء أو المشجعين أو الأجهزة.

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

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

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

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

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

خاتمة

ال CD74HC4067 Multiplexer هي وسيلة قوية وفعالة من حيث التكلفة لتوسيع قدرات الإدخال/الإخراج في 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.