פרסומת
הלמידה להשתמש בסיכות ה- GPIO שב- Raspberry Pi שלך פותחת בפניך עולם שלם של אפשרויות. העקרונות הבסיסיים שנלמדו באמצעות פרויקטים למתחילים סוללים את הדרך לידע שימושי הן בתחום האלקטרוניקה והתכנות של DIY.
מדריך זה יראה לך שתי דרכים להוסיף כפתור לפרויקט Raspberry Pi שלך. הכפתור ישמש לשליטה על נורית LED. הוראות בכתב זמינות מתחת לסרטון.
אתה תצטרך
כדי להתחיל, ודא שיש לך את הרכיבים הבאים:
- 1 x פטל Pi (כל דבר יעשה, דגם 3B משמש במדריך זה)
- כפתור לחיצה 1 x
- 1 x LED
- 1 x 220 אוהם נגד (ערכים גבוהים יותר בסדר, הלד שלך פשוט יהיה עמום יותר)
- 1 x טיפוס לחם
- חיבור חוטים
לאחר שנאסף, כדאי שיהיו לך רכיבים שנראים כך:

תצטרך גם כרטיס SD עם התקנת מערכת ההפעלה Raspbian. הדרך המהירה ביותר לעשות זאת היא עם תמונת NOOBS (New Out of the Box Software). הוראות כיצד לעשות זאת זמינות בסרטון זה:
הקמת המעגל
תשתמש בסיכות ה- GPIO של ה- Pi כדי להפוך את המעגל, ואם אינך מכיר אותם שלנו מדריך לפינים Raspberry Pi GPIO יעזור. המעגל כאן כמעט זהה לקודמו פרויקט LED Raspberry Pi, בתוספת הכפתור בו תשתמש היום.
הגדר את המעגל שלך על פי תרשים זה:

- ה 5v ו GND סיכות מתחברות לפסי הכוח של הלוח.
- סיכה 12 (GPIO 18) מתחבר לרגל החיובית של הלד.
- רגל אחת של נגד מתחבר לרגל השלילית של נורית הלד, והרגל השנייה מתקשרת למעקה הקרקע של הלוח.
- סיכה 16 (GPIO 23) נצמד לצד אחד של הכפתור, הצד השני נצמד למעקה האדמה של הלוח.
לאחר ההגדרה, כך הוא אמור להיראות:

בדוק את המעגל שלך כדי לוודא שהוא נכון ואז הפעל את ה- Raspberry Pi שלך.
שיטה 1: ה- RPi. ספריית GPIO
לאחר שה- Pi אתחל, ראש לתפריט ובחר תכנות> Thonny Python IDE. תפתח סקריפט חדש של פייתון. אם אתה חדש לחלוטין בפייתון, זו שפה נהדרת למתחילים ויש כאלה מקומות נהדרים רבים למידע נוסף על פייתון אחרי שתסיים עם הדרכה זו!

התחל בייבוא ה- RPi. ספריית GPIO, והגדרת מצב הלוח.
יבוא RPi. GPIO בתור GPIO GPIO.setmode (GPIO.BOARD)
כעת הצהירו על המשתנים למספרי ה- LED והפינים.
ledPin = 12. buttonPin = 16.
שים לב שמכיוון שמצב הלוח נקבע ל גלשן אנו משתמשים במספרי הסיכה ולא במספרי ה- GPIO. אם זה מבלבל אתכם, תרשים pinout Raspberry Pi יכול לעזור בפינויו.

הגדרת הכפתור
הגיע הזמן להגדיר את סיכות ה- GPIO. הגדר את סיכת ה- LED לפלט, ואת סיכת הכפתור לכניסה עם נגרר נשיפה
GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)
הטקסט שאחרי GPIO.IN מתייחס ל- נגד משיכה פנימית של פטל פי. עליך לאפשר זאת כדי לקבל קריאה נקייה מהלחצן. מכיוון שהכפתור הולך אל סיכת האדמה, אנו זקוקים לנגרר מושך שיחזיק את סיכת הכניסה גבוהה עד שתלחץ עליו.
לפני שנמשיך, בואו נסתכל על נגדים נשלפים ונשלפים.
הפסקה: משוך נגדים כלפי מעלה / משוך
כאשר אתה מגדיר סיכה של GPIO לקלט, הוא קורא את הסיכה כדי לקבוע את מצבו. במעגל זה אתה צריך לקרוא אם זה סיכה גבוה או נמוך כדי להפעיל את הנורית כשנלחצים על הכפתור. זה יהיה פשוט אם אלה היו המדינות היחידות שיכולה להיות לו סיכה, אך למרבה הצער, יש מדינה שלישית: צף.
לסיכה צפה יש ערך בין גבוה לנמוך, וגורם לכניסת לפעול באופן בלתי צפוי. נגדים מושכים / נפתחים פותרים זאת.

התמונה לעיל היא תרשים מפושט של כפתור ופטל פטל. סיכת ה- GPIO מתחברת לקרקע דרך הכפתור. הנגד השליפה הפנימי מחבר את סיכת ה- GPIO לספק הכוח הפנימי של Pi. זרם זה זורם והסיכה נמשכת בבטחה לגובה HIGH.
כשאתה לוחץ על הכפתור, סיכת ה- GPIO מתחברת ישירות לפין הארצי והכפתור קורא נמוך.

נגדים נופלים מיועדים לחיבור כאשר המתג מחובר לפין הכוח. הפעם, הנגד הפנימי מחבר את סיכת ה- GPIO לקרקע, מחזיק מעמד LOW עד שתלחץ על הכפתור.
תיאוריית ההתנגדות למשך ולמשיכה מבלבלת במבט ראשון, אך ידע חשוב שיש בעבודה עם מיקרו-בקרים. לעת עתה, אם אתה לא לגמרי מבין את זה, אל תדאג!
נמשיך איפה שהפסקנו.
לולאת התוכנית
בשלב הבא הגדר את לולאת התוכנית:
בעוד נכון: buttonState = GPIO.input (buttonPin) אם buttonState == False: GPIO.output (ledPin, GPIO.HIGH) אחרת: GPIO.output (ledPin, GPIO.LOW)
ה בעוד נכון loop מריץ ללא הרף את הקוד בתוכו עד שנסיים את התוכנית. בכל פעם שהוא מתעכב הוא מעדכן את ה- כפתור סטייט על ידי קריאת הקלט מה- כפתור. בזמן שלא נלחץ על הכפתור, הוא נשאר גבוה.
לאחר לחיצה על הכפתור, כפתור סטייט הופך נמוך. זה מעורר את אם הצהרה, מאז שקר זהה ל נמוך, והנורית נדלקת. ה אחר ההצהרה מכבה את הנורית בכל פעם שה- buttonPin אינו שקר.
שמור והפעל את התסריט שלך
שמור את הסקריפט שלך על ידי לחיצה על קובץ> שמור בשם ובחירת שם קובץ. אתה יכול להריץ את הסקיצה על ידי לחיצה על הירוק שחק כפתור בסרגל הכלים Thonny.

כעת לחץ על הכפתור, ונורית ה- LED שלך אמורה להידלק! לחץ על האדום תפסיק כפתור בכל עת להפסקת התוכנית

אם אתה נתקל בקשיים, בדוק היטב את שגיאת קוד ומעגל המעגל שלך ונסה שוב.
שיטה 2: ספריית אפס GPIO
ה- RPi. ספריית GPIO היא פנטסטית, אבל יש ילד חדש ברחוב. ספריית ה- GPIO Zero הייתה נוצר על ידי מנהל הקהילה Raspberry Pi Ben Nuttall מתוך כוונה להפוך את הקוד לפשוט יותר, וקל יותר לקרוא ולכתוב.
כדי לבדוק את הספרייה החדשה פתח קובץ Thonny חדש וייבא את הספרייה.
מ- gpiozero יבוא לד, לחצן. מהפסקת ייבוא האות.
תבחין שלא ייבאת את כל הספרייה. מכיוון שאתה משתמש רק בנורית LED וכפתור, אתה זקוק רק למודולים אלה בתסריט. אנו גם מייבאים הפסקה מספריית האותות שהיא ספריית פייתון לניהול אירועים.
הגדרת הסיכות היא הרבה יותר קלה עם GPIO Zero:
led = LED (18) כפתור = כפתור (23)
מכיוון שבספריית ה- GPIO Zero יש מודולים עבור הלחצן והלחצן, אינך צריך להגדיר כניסות ויציאות כמו בעבר. תבחין כי למרות שהסיכות לא השתנו, המספרים כאן שונים מלמעלה. הסיבה לכך היא ש- GPIO Zero משתמש רק במספרי ה- PIN של ה- GPIO (המכונים גם מספרי Broadcom או BCM).
שאר התסריט הוא שלוש שורות בלבד:
button.when_pressed = led.on. button.when_released = led.off הפסקה ()
ה הפסקה () התקשר לכאן פשוט עוצר את היציאה מהתסריט כשהוא מגיע לתחתית. אירועי שני הכפתורים מופעלים בכל פעם שנלחץ על הכפתור. שמור והפעל את הסקריפט שלך ותראה את אותה התוצאה כמו קודם!
שתי דרכים להוסיף כפתור לפטל פט
מבין שתי הדרכים להגדרת הכפתור, נראה ששיטת GPIO Zero היא הקלה ביותר. עדיין כדאי ללמוד על ה- RPi. ספריית GPIO כ הכי מתחילים פרויקטים של פטל פי תשתמש בזה. פשוט כמו פרויקט זה, ניתן להשתמש בידע למספר דברים.
השימוש בסיכות ה- GPIO הוא דרך נהדרת ללמוד ולהמציא את המכשירים שלך, אבל זה רחוק מכל מה שאתה יכול לעשות עם ה- Pi. שלנו מדריך לא רשמי לפטל פטל פטל Pi: ההדרכה הלא רשמיתבין אם אתה בעל Pi נוכחי שרוצה ללמוד יותר ובין שהוא בעל פוטנציאל של מכשיר זה בגודל כרטיס אשראי, זה לא מדריך שאתה רוצה לפספס. קרא עוד שופע רעיונות ויצירת הדרכות אתה יכול לנסות בעצמך! לקבלת הדרכה נוספת כמו זו, בדוק כיצד ליצור כפתור מחובר ל- Wi-Fi כיצד ליצור לחצן Wi-Fi משלך מחובר באמצעות ESP8266במדריך זה תלמדו כיצד ליצור כפתור המאפשר Wi-Fi באמצעות NodeMCU ו- IFTTT. קרא עוד .
איאן בקלי הוא עיתונאי, מוזיקאי, פרפורמר ומפיק וידיאו פרילנסר המתגורר בברלין, גרמניה. כשהוא לא כותב ולא עולה לבמה, הוא מתעסק באלקטרוניקה או קוד עשה זאת בעצמך בתקווה להפוך למדען מטורף.