3.6. יסודות האלקטרוניקה¶
הנעה של כל רכיב חיצוני מפין GPIO דורשת מעגל בצד השני של הפין. שלושה רעיונות מתחום האלקטרוניקה הבסיסית – מתח, זרם, והקשר ביניהם דרך נגד – מופיעים בכל מעגל כזה.
3.6.1. מתח, זרם, התנגדות¶
מתח (וולט, V) הוא הפרש הפוטנציאלים בין שתי נקודות במעגל. מסילת המתח של השבב עשויה להיות ב-3.3 V יחסית להארקה; פין GPIO המונע למצב גבוה יושב על אותם 3.3 V.
זרם (אמפר, A, או מיליאמפר, mA) הוא זרימת המטען דרך חוט. הזרם תמיד חוזר למקום שממנו יצא, ולכן כדי שזרם כלשהו יזרום, המעגל חייב ליצור לולאה שלמה מהספק חזרה להארקה.
התנגדות (אוהם, Ω) היא מידת ההתנגדות של המסלול לאותה זרימה. תפקידו של נגד הוא לקבוע את הזרם לערך ידוע במתח ידוע.
חוק אוהם קושר ביניהם:
חוק אוהם בשלוש צורותיו.¶
במילים: המתח על נגד שווה לזרם דרכו כפול ההתנגדות. ידיעת שניים מתוך השלושה נותנת את השלישי באמצעות אלגברה.
3.6.2. דיודות¶
דיודה היא רכיב דו-הדקי המוליך זרם בכיוון אחד (מ-אנודה ל-קתודה) וחוסם אותו בכיוון השני.
דיודה מוליכה רק מאנודה לקתודה. LED הוא דיודה הפולטת אור בעת הולכה.¶
לדיודה יש גם מתח קדמי (Vf) – מפל המתח על פניה כאשר הזרם זורם בכיוון ההולכה. ברגע שהמתח המופעל מגיע ל-Vf הדיודה מתנהגת בקירוב כמו חוט; מתחתיו כמעט שאין זרם זורם.
3.6.3. נורות LED¶
דיודה פולטת אור (LED) היא דיודה הממירה את זרם ההולכה שלה לאור נראה או אינפרא-אדום. הבהירות גדלה עם הזרם; הצבע נקבע על ידי הכימיה של ה-LED, ולא על ידי ההנעה.
מתחים קדמיים אופייניים של LED:
אדום: 1.8 – 2.2 V
ירוק או צהוב: 2.0 – 2.4 V
כחול או לבן: 2.8 – 3.4 V
זרם הפעלה שימושי עבור LED חיווי הוא 5 – 20 mA. זרמים גבוהים יותר בהירים יותר אך מקצרים את חיי ה-LED ועשויים לחרוג ממגבלת ההנעה של פין ה-GPIO.
3.6.4. נגד הגבלת הזרם¶
חיבור LED ישירות בין פין GPIO להארקה יאפשר זרימה של זרם כמעט בלתי מוגבל: ברגע שמושג המתח הקדמי, ה-LED נראה כמו קצר חשמלי כמעט מלא. נגד טורי בין הפין ל-LED קובע את הזרם לערך בטוח.
נגד טורי קובע את זרם ה-LED.¶
מתח הספק מתחלק בין הנגד ל-LED: ה-LED מפיל את המתח הקדמי שלו, הנגד מפיל את השאר. לפי חוק אוהם:
R = (Vsupply - Vf) / If
עבור LED אדום (Vf ≈ 2.0 V) המונע מפין GPIO של 3.3 V ב-10 mA:
R = (3.3 - 2.0) / 0.010 = 130 Ω
בפועל, בחר את הערך הסטנדרטי הגדול הקרוב ביותר (150 Ω או 220 Ω). התוצאה היא LED מעט עמום יותר עם מרווח בטיחות בריא יותר. השתמש ב-200 – 470 Ω כברירת מחדל הגיונית כאשר הבהירות המדויקת אינה משנה.
3.6.5. מדוע כל חלק חשוב¶
צורתו של כל מעגל פלט GPIO נובעת מארבעת הרעיונות לעיל:
מתח קובע את האנרגיה הזמינה בפין. ל-GPIO של 3.3 V יש 3.3 V לבזבז על כל מה שמחווט בינו לבין ההארקה.
דיודה (LED, במקרה זה) צורכת חלק מאותו מתח כמפל הקדמי שלה ומסרבת להוליך בכיוון הלא נכון – היא קובעת את ה-באיזה כיוון ואת ה-חלק הקבוע.
נגד מגביל זרם צורך את המתח הנותר והופך את התקציב שנותר ל-זרם מבוקר. בלעדיו, ה-LED היה מושך כל זרם שהפין יכול לספק – בדרך כלל מספיק כדי להרוס אחד מהם או את שניהם.
חוק אוהם הוא מה שהופך את ערך הנגד לבר-חישוב: בהינתן המתח הנותר והזרם הרצוי,
Rנגזר באמצעות אלגברה.
מתח, זרם, התנגדות, דיודות, ומשוואה אחת מסודרת מחדש מספיקים כדי לתכנן כל שלב פלט GPIO בסיסי.
אותם החלקים הסתתרו מאחורי ה-LED שעל הלוח לאורך כל הדרך. machine.LED("LED_RED").on() מדליק את ה-LED מכיוון שלוח המצלמה כבר מספק את כל מה שסביבו – נגד הגבלת הזרם, החוט להארקה, ה-LED עצמו – והמחלקה רק מחליפה את מצב ה-GPIO של הסיליקון שמאחוריהם. התפיסה של ”שורה אחת מדליקה LED“ נכונה; זוהי פשוט דרך קצרה לומר ”הנע את אותו מעגל“. הסר את ההפשטה ומה שנותר הוא בדיוק המעגל שלמעלה.
machine.Pin הוא אותו סיליקון נחשף ללא החלקים הסובבים. הסקריפט שולט במתח הפין ישירות; אתה מספק את הנגד (שגודלו לפי חוק אוהם), את ה-LED, ואת מסלול החזרה להארקה. אותם ארבעה רעיונות חוזרים, בצירופים מעט שונים, מאחורי ביטול ריצוד מתגים, סינון PWM, והנעת מנועים.