द CD74HC4067 एक 16-चैनल एनालॉग / डिजिटल मल्टीप्लेक्सर है जो रास्पबेरी पाई को इंटरफ़ेस तक सक्षम बनाता है 16 इनपुट या आउटपुट केवल कुछ GPIO पिन का उपयोग करना. कई सेंसर या उपकरणों के साथ काम करते समय अपने रास्पबेरी पाई की I / O क्षमताओं का विस्तार करने के लिए यह एकदम सही है.
आपको क्या चाहिए
- रास्पबेरी पाई (जीपीआईओ समर्थन के साथ कोई भी मॉडल, जैसे, पाई 3, पाई 4)
- CD74HC4067 मल्टीप्लेक्सर
- एनालॉग या डिजिटल इनपुट डिवाइस (जैसे, सेंसर, स्विच)
- ब्रेडबोर्ड और जम्पर तारों
- पायथन स्थापित रास्पबेरी पाई पर
चरण 1: CD74HC4067 को समझना
CD74HC4067 में है:
- 16 इनपुट / आउटपुट चैनल (S0-S15)
- 4 नियंत्रण पिन (S0, S1, S2, S3) सक्रिय चैनल का चयन करने के लिए.
- 1 पिन सक्षम करें (EN) मल्टीप्लेक्स (सक्रिय कम) को सक्रिय करने के लिए.
- एक अकेला COM (आम) पिन साझा संचार के लिए.
चैनल चयन के लिए सत्य तालिका
S3 | एस 2 | एस 1 | S0 | सक्रिय चैनल |
---|---|---|---|---|
0 | 0 | 0 | 0 | S0 |
0 | 0 | 0 | 1 | एस 1 |
0 | 0 | 1 | 0 | एस 2 |
... | ... | ... | ... | ... |
1 | 1 | 1 | 1 | S15 |
चरण 2: रास्पबेरी पाई को CD74HC4067 वायरिंग
मल्टीप्लेक्स को रास्पबेरी पाई से निम्नानुसार कनेक्ट करें:
CD74HC4067 पिन | रास्पबेरी पाई पिन |
---|---|
वीसीसी | 3.3V (पिन 1) |
GND | GND (पिन 6) |
S0 | GPIO17 (पिन 11) |
S1 | GPIO27 (पिन 13) |
S2 | GPIO22 (पिन 15) |
S3 | GPIO23 (पिन 16) |
EN | GND (एक्टिव लो) |
COM | GPIO18 (पिन 12, एनालॉग इनपुट/आउटपुट) |
S0-S15 | सेंसर/डिवाइस कनेक्ट करें |
चरण 3: आवश्यक लाइब्रेरी इंस्टॉल करें
अपने Raspberry Pi को अपडेट करें और GPIO नियंत्रण के लिए Python लाइब्रेरी इंस्टॉल करें।
sudo apt update && sudo apt upgrade -y
sudo apt install python3-rpi.gpio
चरण 4: मल्टीप्लेक्सर से डेटा पढ़ने के लिए 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 के अनुप्रयोग
- कई सेंसर पढ़ना: 16 सेंसर (जैसे, तापमान, आर्द्रता या प्रकाश) के साथ इंटरफेस।
- डिजिटल I/O का विस्तार: कई स्विच, LED या रिले प्रबंधित करें।
- एनालॉग सेंसर एकीकरण: पोटेंशियोमीटर, जॉयस्टिक या मिट्टी की नमी सेंसर से सिग्नल पढ़ें।
- होम ऑटोमेशन: लाइट, पंखे या उपकरणों जैसे कई डिवाइस को नियंत्रित करें।
समस्या निवारण
-
चैनल से कोई डेटा नहीं:
- S0-S3 नियंत्रण पिन और COM पिन की वायरिंग को सत्यापित करें।
- सुनिश्चित करें कि सेंसर/डिवाइस S0-S15 पिन से ठीक से जुड़े हुए हैं।
-
गलत चैनल चयन:
- S0-S3 कॉन्फ़िगरेशन के लिए सत्य तालिका देखें.
- सुनिश्चित करें कि सक्रियण के लिए EN पिन GND से जुड़ा है.
-
आंतरायिक रीडिंग:
- सिग्नल स्थिरीकरण की अनुमति देने के लिए स्विचिंग चैनलों के बीच एक छोटी सी देरी (
time.sleep(0.1)
) जोड़ें.
- सिग्नल स्थिरीकरण की अनुमति देने के लिए स्विचिंग चैनलों के बीच एक छोटी सी देरी (
निष्कर्ष
CD74HC4067 मल्टीप्लेक्सर रास्पबेरी पाई की इनपुट/आउटपुट क्षमताओं का विस्तार करने का एक शक्तिशाली और लागत प्रभावी तरीका है। इस गाइड का पालन करके, आप केवल 16 GPIO पिन का उपयोग करके अधिकतम 4 एनालॉग या डिजिटल उपकरणों के साथ आसानी से इंटरफ़ेस कर सकते हैं। इस बहुमुखी मॉड्यूल का अधिकतम लाभ उठाने के लिए विभिन्न सेंसर और अनुप्रयोगों के साथ प्रयोग करें! 🚀