תוכן עניינים:

שליטה במספר נוריות עם פיתון וסיכות ה- GPIO של הפטל שלך: 4 שלבים (עם תמונות)
שליטה במספר נוריות עם פיתון וסיכות ה- GPIO של הפטל שלך: 4 שלבים (עם תמונות)

וִידֵאוֹ: שליטה במספר נוריות עם פיתון וסיכות ה- GPIO של הפטל שלך: 4 שלבים (עם תמונות)

וִידֵאוֹ: שליטה במספר נוריות עם פיתון וסיכות ה- GPIO של הפטל שלך: 4 שלבים (עם תמונות)
וִידֵאוֹ: שליטה במספר נורות - 3/15 2024, נוֹבֶמבֶּר
Anonim
שליטה במספר נוריות עם פיתון וסיכות ה- GPIO של הפטל שלך
שליטה במספר נוריות עם פיתון וסיכות ה- GPIO של הפטל שלך

מדריך זה מדגים כיצד לשלוט במספר סיכות GPIO ב- RaspberryPi שלך להפעלת 4 נוריות LED. הוא גם יציג בפניך פרמטרים והצהרות מותנות ב- Python.

ההדרכה הקודמת שלנו באמצעות סיכות ה- GPIO של הפטל פטל שלך לשליטה על נורית LED מדגימה כיצד להדליק ולכבות נורית אחת באמצעות הפקודה GPIO.output. מדריך זה מבוסס על ידע זה כדי ללמד אותך כיצד להשיג שליטה רבה יותר במעגל שלך.

שלב 1: מה שאתה צריך

מה שאתה תצטרך
מה שאתה תצטרך
מה שאתה תצטרך
מה שאתה תצטרך

- RaspberryPi עם Raspbian כבר מותקן. יהיה עליך גם לגשת ל- Pi באמצעות צג, עכבר ומקלדת או באמצעות שולחן עבודה מרוחק. אתה יכול להשתמש בכל דגם של Raspberry Pi. אם יש לך אחד מדגמי Pi Zero, ייתכן שתרצה להלחים כמה סיכות כותרת ליציאת GPIO.

- נוריות אדומות, כחולות, צהובות וירוקות

- קרש אבות טיפוס ללא הלחמה

- 4 x 330 אוהם נגדים

- כמה חוטי מגשר זכר לנקבה

שלב 2: בנה את המעגל שלך

בנה את המעגל שלך
בנה את המעגל שלך
בנה את המעגל שלך
בנה את המעגל שלך

בנה את המעגל הנ ל בלוח הלחם שלך וודא שאף אחד ממרכיבי הרכיבים לא נוגע ושהנורות LED מחוברות בצורה הנכונה.

כיצד אתה מזהה את הלידים החיוביים והשליליים (הקוטביות) על הלדים שלך? אם תסתכל על נורית LED, תראה שיש לה שתי פיסות מתכת קטנות בתוך המעטפת הצבעונית. אלה נקראים האנודה והקתודה. הקתודה היא הגדולה מבין השניים ומחוברת גם להוביל השלילי של ה- LEDs.

לאחר שבדקת את המעגל שלך, חבר את כבלי המגשר של סיכות ה- GPIO של ה- Raspberry Pi שלך על ידי ביצוע התרשים לעיל.

שלב 3: צור סקריפט לשליטה ובדיקת הנורות

צור סקריפט לשליטה ובדיקת הנורות
צור סקריפט לשליטה ובדיקת הנורות

ב- Raspberry Pi שלך, פתח את IDLE (תפריט> תכנות> Python 2 (IDLE)).

פתח פרויקט חדש עבור אל קובץ> קובץ חדש. לאחר מכן הקלד (או העתק והדבק) את הקוד הבא:

ייבא RPi. GPIO כ- GPIO

זמן ייבוא GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. OUT) GPIO.setup (18, GPIO. OUT) GPIO.setup (22, GPIO. OUT) GPIO.setup (23, GPIO. OUT) GPIO.output (17, True) time.sleep (3) GPIO.output (17, False) time.sleep (1) GPIO.output (18, True) time.sleep (3) GPIO.output (18, False) time.sleep (1) GPIO.output (22, True) time.sleep (3) GPIO.output (22, False) time.sleep (1) GPIO.output (23, True) time.sleep (3) GPIO. פלט (23, שקר)

שמור את הפרויקט שלך כ- multilights.py (קובץ> שמור בשם) בתיקיית מסמכי Raspberry Pis.

ב- Raspberry Pi פתח את הטרמינל (תפריט> אביזרים> מסוף) ונווט אל תיקיית המסמכים שלך על ידי הקלדת הדברים הבאים:

cd/home/pi/Documents

כעת תוכל להריץ את הסקריפט החדש שלך על ידי הקלדת הדברים הבאים:

python multilights.py

האורות יקבלו את זה בתורו כדי להדליק ולכבות. התסריט לעיל משתמש בפקודה time.sleep ליצירת הפסקה בין כל שלב, מה שהופך כל אור להישאר דולק במשך 3 שניות ולהמתין שנייה אחת לפני הדלקת הנורה הבאה.

שלב 4: הוספת גמישות באמצעות פרמטרים והצהרות מותנות

באמצעות פרמטרים והצהרות מותנות אנו יכולים להפוך את הסקריפט לעיל לגמיש בהרבה.

פרמטר מאפשר לך לאחסן ערך שבו תוכל להשתמש בהמשך התסריט. סוגי הערכים הנפוצים ביותר הם מחרוזות (טקסט), מספרים שלמים (מספרים שלמים) או מצופים (מספרים עשרוניים).

הצהרה מותנית תקבע אם יש לבצע קטע קוד או לא על ידי בדיקה אם מתקיים תנאי מסוים. המצב יכול לכלול גם פרמטרים.

פתח את IDLE ב- Raspberry Pi שלך ופתח פרויקט חדש (קובץ> קובץ חדש). לאחר מכן הקלד את הדברים הבאים. הקפד לוודא שכל הכניסות (הכרטיסיות) כלולות באמצעות מקש הכרטיסייה:

ייבא RPi. GPIO כ- GPIO

זמן יבוא מ- sys import argv whichled = argv [1] ledaction = argv [2] LEDa = 17 LEDb = 18 LEDc = 22 LEDd = 23 GPIO.setmode (GPIO. BCM) GPIO.setup (LEDa, GPIO. OUT) GPIO. setmode (GPIO. BCM) GPIO.setup (LEDb, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDc, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDd, GPIO. OUT) if ledaction == "off": if whichled == "a": GPIO.output (LEDa, False) if whichled == "b": GPIO.output (LEDb, False) if whichled == "c": GPIO.output (LEDc, False) if whichled == "d": GPIO.output (LEDd, False) if whichled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. פלט (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if whichled == "a": GPIO.output (LEDa, True) if whichled == "b": GPIO.output (LEDb, True) if whichled == "c": GPIO.output (LEDc, True) if whichled == "d": GPIO.output (LEDd, True) if whichled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

שמור את הפרויקט שלך בתור controllight.py (קובץ> שמור בשם) בתיקיית המסמכים שלך. פתח כעת מסוף (תפריט> אביזרים> מסוף) והקלד את הפקודה הבאה:

python controllight.py b on

הנורית השנייה צריכה להידלק. כעת הקלד את הדברים הבאים:

python controllight.py b כבוי

הנורית השנייה אמורה לכבות.

בשורות 5, 6, 7 & 8, אנו יוצרים את הפרמטרים LEDa, LEDb, LEDc ו- LEDd לאחסון איזה פין GPIO חיברנו לאיזה LED. זה מאפשר לנו להשתמש בסיכות GPIO חלופיות מבלי לבצע שינויים מהותיים בתסריט.

לדוגמה, אם היינו מחברים את נוריות הלדים הראשונות ל- Pin 3 (GPIO 2) במקום זאת, פשוט היינו צריכים לשנות את קו 5 לדברים הבאים:

LEDa = 2

שורה 4 מאחסן את הערכים שהקלדת לאחר controllight.py בפרמטרים אשר (c) ו- ledaction (מופעל). לאחר מכן התסריט משתמש בפרמטרים אלה, לצד מספר הצהרות מותנות כדי להחליט באיזו נורית לשלוט ואם להדליק או לכבות אותו.

שורה 16 (אם ledaction == "מופעל":) היא הצהרה מותנית. השורות המסוכנות שאחרי משפט זה יפעלו רק אם מתקיים תנאי ההצהרה. בתרחיש זה, התנאי הוא ש- ledaction מכיל את הטקסט.

על ידי קריאת ההצהרות המותנות האחרות של התסריט, האם תוכל לחזות מה יקרה כאשר תקליד את הפקודה הבאה בטרמינל?

python controllight.py הכל הלאה

למה לא לנסות ולפרסם את התשובה שלך בסעיף ההערות למטה.

מוּמלָץ: