باستخدام مفتاح زر الضغط مع Raspberry Pi

Using a Push Button Switch with the Raspberry Pi

 

مفتاح زر الضغط هو جهاز إدخال بسيط ولكنه فعال يستخدم غالبًا في مشاريع مثل بدء العمليات أو إيقافها ، أو التحكم في المصابيح ، أو إحداث الأحداث. سيمشي هذا البرنامج التعليمي من خلال توصيل مفتاح زر الضغط إلى Raspberry Pi ، وإعداد الأسلاك ، وكتابة نص Python لاكتشاف زر.


ماذا ستحتاج

  1. التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
  2. اضغط على مفتاح زر
  3. الأسلاك الأسلاك والبلوز
  4. المقاوم (10kΩ للانسحاب)
  5. بيثون مثبت على التوت الخاص بك
  6. مكتبة GPIO للتحكم في دبابيس GPIO التوت PI

الخطوة 1: توصيل زر الضغط إلى Raspberry Pi

يعمل مفتاح زر الضغط إما عن طريق توصيل دبوس GPIO بحالة عالية (3.3 فولت) عند الضغط عليها أو سحبها إلى منخفض (0V) عند عدم الضغط عليها. سنستخدم المقاوم المنسول للتأكد من أن دبوس GPIO يقرأ منخفضًا عند عدم الضغط على الزر.

توصيل زر الضغط

دفع زر دبوس التوت PI GPIO دبوس
دبوس واحد GPIO17 (PIN 11)
دبوس آخر الأرض (دبوس 6)
دبوس واحد مقاوم 10KΩ للأرض

إليك إعداد الأسلاك:

  • قم بتوصيل محطة واحدة من زر الضغط على GPIO17 (دبوس 11).
  • قم بتوصيل المحطة الأخرى لزر الضغط إلى أرضي (دبوس 6).
  • قم بتوصيل مقاوم 10KΩ بين GPIO17 و أرضي ليكون بمثابة المقاوم المنسدلة.

هذا يضمن أنه عند الضغط على الزر ، يقرأ GPIO17 مرتفعًا (3.3 فولت) ، وعندما لا يتم الضغط عليه ، يتم سحب GPIO17 إلى منخفض (0V) بواسطة المقاوم.


الخطوة 2: تمكين دبابيس GPIO في Python

  1. أولاً ، قم بتحديث قائمة حزمة Raspberry Pi الخاصة بك:

    sudo apt update
    sudo apt upgrade -y
    
  2. قم بتثبيت مكتبة Python GPIO المطلوبة (إن لم يكن مثبتًا بالفعل):

    sudo apt install python3-rpi.gpio
    
  3. استيراد المكتبة في نص Python الخاص بك:

    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): يعين ترقيم PIN GPIO إلى وضع BCM (Broadcom).
  • 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: اختبار الزر

  1. قم بتشغيل نص Python الخاص بك:

    python3 button.py
    
  2. اضغط على زر الضغط ومراقبة الرسالة "تم الضغط على الزر!" في المحطة.


الخطوة 5: التطبيقات

فيما يلي بعض الأفكار لاستخدام زر الضغط في مشاريعك:

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

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

  • زر لم يتم اكتشافه:

    • تأكد من أن الزر سلكي بشكل صحيح مع المقاوم المنسول.
    • تحقق مزدوج إعداد PIN GPIO في الكود.
  • خطأ GPIO:

    • تأكد من تثبيت مكتبة GPIO بشكل صحيح وأن أرقام PIN في البرنامج النصي الخاص بك صحيحة.
  • ترتد زر:

    • إذا لاحظت اكتشاف ضغط زر متعددة ، يمكنك إضافة وقت تصيبه (bouncetime=300 في البرنامج النصي) لتجنب الاكتشافات الخاطئة.

خاتمة

يعد استخدام زر الضغط مع Raspberry Pi وسيلة سهلة لإضافة وظائف الإدخال إلى مشاريعك. سواء أكان ذلك تبديل LEDs أو تشغيل الأحداث أو التفاعل مع الأجهزة الأخرى ، فإن هذا الإعداد البسيط يمكن أن يكون الأساس للعديد من التطبيقات المثيرة للاهتمام. تجربة مع دبابيس GPIO المختلفة وإعدادات Debounce لتناسب احتياجاتك!

اترك تعليقًا

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.