एक पुश बटन स्विच एक सरल लेकिन प्रभावी इनपुट डिवाइस है जिसका उपयोग अक्सर प्रक्रियाओं को शुरू करने या रोकने, एलईडी को नियंत्रित करने या घटनाओं को ट्रिगर करने जैसी परियोजनाओं में किया जाता है। यह ट्यूटोरियल आपको रास्पबेरी पाई में एक पुश बटन स्विच को जोड़ने, वायरिंग सेट करने और बटन प्रेस का पता लगाने के लिए एक पायथन स्क्रिप्ट लिखने के माध्यम से चला जाएगा।
आपको क्या चाहिए
- रसभरी पाई (GPIO समर्थन के साथ कोई भी मॉडल, जैसे, पीआई 3, पीआई 4)
- पुश बटन स्विच
- ब्रेडबोर्ड और जम्पर तार
- अवरोध (10k and पुल-डाउन के लिए)
- पायथन स्थापित अपने रास्पबेरी पाई पर
- जीपियो लाइब्रेरी रास्पबेरी पाई के GPIO पिन को नियंत्रित करने के लिए
चरण 1: रास्पबेरी पाई को पुश बटन को वायर करना
एक पुश बटन स्विच या तो GPIO पिन को उच्च (3.3V) स्थिति से जोड़कर काम करता है जब दबाया जाता है या इसे दबाने पर कम (0V) तक खींचता है। जब बटन दबाया नहीं जाता है तो GPIO पिन पढ़ने के लिए यह सुनिश्चित करने के लिए हम एक पुल-डाउन रोकनेवाला का उपयोग करेंगे।
पुश बटन को वायरिंग करें
पुश बटन पिन | रास्पबेरी पाई जीपीआईओ पिन |
---|---|
एक पिन | GPIO17 (पिन 11) |
अन्य पिन | ग्राउंड (पिन 6) |
एक पिन | जमीन के लिए 10k to रोकनेवाला |
यहाँ वायरिंग सेटअप है:
- पुश बटन के एक टर्मिनल को कनेक्ट करें GPIO17 (पिन 11)।
- पुश बटन के अन्य टर्मिनल को कनेक्ट करें मैदान (पिन 6)।
- के बीच एक 10k that अवरोधक कनेक्ट करें GPIO17 और मैदान एक पुल-डाउन रोकनेवाला के रूप में कार्य करने के लिए।
यह सुनिश्चित करता है कि जब बटन दबाया जाता है, तो GPIO17 उच्च (3.3V) पढ़ता है, और जब इसे दबाया नहीं जाता है, तो gpio17 को रोकनेवाला द्वारा कम (0V) पर खींच लिया जाता है।
चरण 2: पायथन में GPIO पिन सक्षम करें
-
सबसे पहले, अपने रास्पबेरी पाई की पैकेज सूची को अपडेट करें:
sudo apt update sudo apt upgrade -y
-
आवश्यक पायथन GPIO लाइब्रेरी स्थापित करें (यदि पहले से स्थापित नहीं है):
sudo apt install python3-rpi.gpio
-
अपने पायथन स्क्रिप्ट में लाइब्रेरी आयात करें:
import RPi.GPIO as GPIO import time
चरण 3: अजगर कोड लिखना
अब, जब बटन दबाया जाता है, तो यह पता लगाने के लिए एक पायथन स्क्रिप्ट लिखें और तदनुसार कार्रवाई करें।
पायथन कोड उदाहरण
import RPi.GPIO as GPIO
import time
# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM) # Use BCM numbering
button_pin = 17 # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set up pin with pull-down resistor
# Function to detect button press
def button_callback(channel):
print("Button was pressed!")
# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)
try:
print("Press the button...")
while True:
# Keep the program running to wait for button press
time.sleep(0.1)
except KeyboardInterrupt:
print("Program exited")
finally:
GPIO.cleanup() # Clean up GPIO to ensure a clean exit
कोड स्पष्टीकरण:
- Gpio.setMode (gpio.bcm): BCM (ब्रॉडकॉम) मोड पर GPIO पिन नंबरिंग सेट करता है।
- Gpio.setup (button_pin, gpio.in, pull_up_down = gpio.pud_down): बटन पिन को एक पुल-डाउन रोकनेवाला के साथ एक इनपुट के रूप में कॉन्फ़िगर करता है, जिसका अर्थ है कि यह दबाने पर कम पढ़ेगा।
-
Gpio.add_event_detect (): GPIO पिन के राइजिंग एज (बटन प्रेस) का पता लगाता है और कॉलबैक फ़ंक्शन को ट्रिगर करता है
button_callback
जब बटन दबाया जाता है। - Time.sleep (0.1): स्क्रिप्ट को चालू रखता है, जिससे इसे बटन प्रेस की प्रतीक्षा करने की अनुमति मिलती है।
- Gpio.cleanup (): स्क्रिप्ट से बाहर होने पर GPIO सेटिंग्स को साफ करता है।
चरण 4: बटन का परीक्षण
-
अपनी पायथन स्क्रिप्ट चलाएं:
python3 button.py
-
पुश बटन दबाएं और संदेश का निरीक्षण करें "बटन दबाया गया था!" टर्मिनल में।
चरण 5: आवेदन
अपनी परियोजनाओं में पुश बटन का उपयोग करने के लिए यहां कुछ विचार दिए गए हैं:
- एक एलईडी को नियंत्रित करें: एक एलईडी को टॉगल करने के लिए पुश बटन का उपयोग करें।
- एक घटना को ट्रिगर करें: एक प्रक्रिया शुरू या रोकें (जैसे, एक मोटर शुरू करें, एक प्रशंसक चालू करें, या एक स्क्रिप्ट शुरू करें)।
- स्मार्ट डोरबेल: अपने फोन पर एक अधिसूचना भेजने के लिए एक दरवाजे के रूप में बटन का उपयोग करें।
- उपयोगकर्ता इनपुट: अपनी परियोजनाओं के लिए सरल उपयोगकर्ता इनपुट प्राप्त करें (जैसे "हां/नहीं" उत्तर)।
समस्या निवारण
-
बटन का पता नहीं चला:
- सुनिश्चित करें कि बटन को पुल-डाउन रोकनेवाला के साथ सही ढंग से वायर्ड किया गया है।
- कोड में अपने GPIO पिन सेटअप को डबल-चेक करें।
-
GPIO त्रुटि:
- सुनिश्चित करें कि GPIO लाइब्रेरी ठीक से स्थापित है और आपकी स्क्रिप्ट में पिन नंबर सही हैं।
-
बटन उछाल:
- यदि आपको कई बटन प्रेस का पता चल रहा है, तो आप एक बहस समय जोड़ सकते हैं (
bouncetime=300
स्क्रिप्ट में) झूठे पता लगाने से बचने के लिए।
- यदि आपको कई बटन प्रेस का पता चल रहा है, तो आप एक बहस समय जोड़ सकते हैं (
निष्कर्ष
रास्पबेरी पाई के साथ एक पुश बटन स्विच का उपयोग करना आपकी परियोजनाओं में इनपुट कार्यक्षमता जोड़ने का एक आसान तरीका है। चाहे वह एलईडी को टॉगल कर रहा हो, घटनाओं को ट्रिगर कर रहा हो, या अन्य हार्डवेयर के साथ बातचीत कर रहा हो, यह सरल सेटअप कई दिलचस्प अनुप्रयोगों के लिए नींव हो सकता है। अलग -अलग GPIO पिन के साथ प्रयोग करें और अपनी आवश्यकताओं को पूरा करने के लिए सेटिंग्स पर बहस करें!