טריקים חשמליים עם נוריות LED, חלק א'

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

התשובה האינטואיטיבית היא שלושה: שניים למתח ואחד משותף ל-Ground (או להיפך). אבל אם היישום הספציפי אינו מצריך הפעלה של שתי הנוריות בו-זמנית, אפשר להסתפק בשניים! בואו ונראה איך…

נורית LED, כפי שמרמזים ראשי התיבות שלה Light Emitting Diode, היא קודם כל דיודה. כלומר, אם נחבר אותה "הפוך" (הרגל הקצרה לפלוס והארוכה ל-Ground), לא יקרה לה כלום – פשוט לא יעבור זרם במעגל והיא לא תאיר. כל זה בהנחה, כמובן, שאנחנו עובדים במתחים וזרמים נמוכים.

פתרון החידה מנצל את העובדה הזו, והוא מבוסס על חיבור במקביל של שתי נוריות LED למקור המתח, כשאחת מהן הפוכה. כשהמתח הוא בכיוון אחד, אחת הנוריות תדלוק כרגיל, ואילו השניה תתפקד כדיודה פשוטה ותישאר כבויה. אם נהפוך את כיוון המתח, הנוריות יתחלפו בתפקידים – ואם לא נפעיל כל מתח, שתי הנוריות יהיו כבויות! הנה החיווט ואחריו קוד ההדגמה התואם עבור ארדואינו:

TwoWiresTwoLEDsWiring
חיווט להפעלת שתי נוריות בשני חוטים בלבד – לחצו להגדלה
// 2-Wire 2-LED control
void setup() {
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
}

void setPins(int v1, int v2) {
  digitalWrite(7, v1);
  digitalWrite(8, v2);
}

void loop() {
  setPins(HIGH, LOW); delay(300);
  setPins(LOW, HIGH); delay(300);
  setPins(LOW, LOW); delay(300);
}

אפרופו, אפשר לדמות הדלקה בו-זמנית של שתי הנורות באמצעות החלפה מהירה של כיוון המתח, אלא שיש לכך מחיר בעוצמת ההארה.

ועכשיו, המשך החידה (למתקדמים): אם אנחנו יכולים לשלוט בשתי נוריות LED באמצעות שני חוטים בלבד, בכמה נוריות נוכל לשלוט באמצעות 3, 4 או N חוטים? את התשובה המפורטת והמעניינת אציג בפוסט ההמשך. מי שלא יכול לחכות עד אז מוזמן לעיין בספר החינמי Compiled Tips 'N Tricks Guide של חברת Microchip (אם כי רובו טכני ולא רלוונטי למתחילים – ראו הוזהרתם).

הערה אדמיניסטרטיבית: הוספתי לפוסטים, למטה, אופציה לתיוג ברשתות חברתיות. אם זה מעצבן אתכם, או מוצא חן בעיניכם, או לא עובד לכם כמו שצריך – הגיבו בכיף.

להרשמה
הודע לי על
14 Comments
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

אהלן עידו !

אבל איך בכל זאת אתה לא חיברת את המעגל הזה לאף פין של Ground ?

לפי בדיקה שלי ( על הנייר ) 3 חוטים ישלטו ב6 לדים , 4 ישלטו ב8 ו5 ישלטו ב16 לדים .

עם דף ועט – פשוט ציירתי את החוטים ומשכתי בינהם לדים .
ד"א – ב5 חוטים טעיתי וזה לא 16 .

טוב … עקב הבעייתיות בלחשוב בשעות אלו הצצתי בספר – ולכן לא אכתוב את הפיתרון עד לטור הבא שלך ( אני בטוח שתסביר יותר טוב ) .
מה שכן , הנוסחא מחייבת לסדר את הנגדים באופן מדוייק (בלי להשאיר להם שביל לברוח ) .
אם לדוגמא בתרשים בספר הנגד שמחובר לgp0 וללד1,2 היה מחובר לgp1 ולאותם לדים אז כשgp2=1 וgp0=0 במקום שלד 5 יידלק אז לדים 3ו2 ידלקו
זה נכון או שאני טועה ?

והדף נראה רע (:

אדיר !

הנגדים חייבים להיות שם כדי שזה יעבוד , קח את הדוגמא בספר אבל תוריד את הנגדים – אם נרצה להדליק את לד5 אז המתח שנשלח יהיה gp2=1 וgp0=0 אבל אז גם לדים 3ו2 ידלקו כי הם גם במעגל ( בהנחה והחשמל מספיק ל3 לדים, אבל בכל מקרה לא יהיה מצב שבו רק לד5 ידלק ).
השאלה היא מה קורה אם הנגדים יהיו כמו בדוגמא שנתתי בתגובה מעל . הייתי רוצה לבדוק אבל הערכה שלי עוד לא הגיעה מסין .

מקסים!

תודה – כתבה מעניינת וסגנון כתיבה קל וחביב.