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

שעה, טמפרטורה, מונה נקודות במשחק — כולם צריכים כמה ספרות ביחד. אז נחבר ארבע תצוגות?
כאן נתקלים בבעיה. לתצוגה אחת צריך שמונה חוטים. לארבע יהיו צריכים 32 חוטים — ובלוח ה-ESP32 אין כל כך הרבה פינים פנויים. ובכל מקרה, מי מסוגל לחבר 32 חוטים בלי לטעות?
הפתרון שממציאי האלקטרוניקה מצאו הוא אחד היפים בקורס הזה, והוא לא מבוסס על חשמל בכלל — הוא מבוסס על איך העיניים שלכם עובדות.
הידע שצריך
הבזק ראייה
כשמשהו נעלם מהשדה הראייה שלכם, המוח לא מפסיק לראות אותו מיד. הוא ממשיך ״לראות״ אותו עוד בערך עשירית שנייה. התופעה הזאת נקראת הבזק ראייה (persistence of vision), והיא אחת התכונות הכי מנוצלות בטכנולוגיה.

התמונה הזאת מפורסמת. היא צולמה לפני יותר ממאה וחמישים שנה כדי לענות על שאלה: האם סוס דוהר מרים את כל ארבע הרגליים באוויר בו-זמנית? הצלם העמיד שורה של מצלמות וצילם תמונה אחרי תמונה.
וכשמריצים את התמונות האלה מהר — רואים סוס שרץ. אין שם שום תנועה. יש שתים עשרה תמונות קפואות. המוח שלכם ממלא את החורים.
זה בדיוק מה שקורה בכל סרט שראיתם — 24 תמונות נפרדות בשנייה. וזה גם למה מאוורר שמסתובב מהר נראה כמו עיגול שקוף, ולמה אפשר ״לצייר״ באוויר עם פנס בלילה ולקבל קו אור בתמונה.
החולשה הזאת של העין היא בדיוק מה שנשתמש בו היום.
תצוגת ארבע הספרות
הרכיב נראה כמו ארבע תצוגות שהודבקו זו לזו בתוך קופסה אחת ארוכה:

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

רואים את הקווים שרצים מתחת לכל ארבע הספרות? זה הלב של העניין:
- שמונה קווי סגמנט (a עד g ו-dp) — משותפים לכל ארבע הספרות. כשאתם מדליקים את הסגמנט a, אתם מדליקים אותו בכל ארבעתן בבת אחת.
- ארבעה קווי בחירת ספרה (D1 עד D4) — כל אחד שייך לספרה אחת בלבד, ותפקידו להחליט מי מהארבע מקבלת חשמל עכשיו.
סך הכול: 8 ועוד 4 = 12 חוטים במקום 32.
אז איך מציגים ארבע ספרות שונות?
עכשיו נראה שיש בעיה חמורה. אם קווי הסגמנט משותפים, ואנחנו מדליקים את הצירוף של הספרה 1 — כל ארבע הספרות יראו 1. אי אפשר להראות 1234, רק 1111 או 2222.
הפתרון: לא מדליקים אותן ביחד. מדליקים אותן בתורות.
זה הולך ככה, וזה חוזר בלי הפסקה:
- הדלק את הצירוף של הספרה 1, ופתח רק את D1. עכשיו הספרה הראשונה מציגה 1 והשאר חשוכות.
- חכה 5 אלפיות שנייה.
- הדלק את הצירוף של 2, וסגור את D1 ופתח את D2. עכשיו רק השנייה דולקת.
- חכה 5 אלפיות.
- אותו דבר לשלישית עם 3, ולרביעית עם 4.
- חזור להתחלה.
בכל רגע נתון דולקת ספרה אחת בלבד. אף פעם לא שתיים. אבל כל מחזור שלם לוקח בערך 20 אלפיות שנייה — כלומר 50 מחזורים בשנייה. העין שלכם, שזוכרת כל מה שהיא רואה עוד עשירית שנייה, פשוט לא מסוגלת לתפוס את ההבהוב. היא רואה 1234 יציב.
השיטה הזאת נקראת סריקה דינמית (dynamic scanning), או ריבוב. אותו רעיון בדיוק שהופך שתים עשרה תמונות של סוס לסוס דוהר.
החיבור
בדיוק כמו בשיעור הקודם — שמונה נגדים של 220Ω על קווי הסגמנט. קווי בחירת הספרה לא צריכים נגד.

קווי הסגמנט מחוברים בדיוק כמו בשיעור 14 — מי שבנה אז, לא צריך לשנות כלום:
| סגמנט | פין |
|---|---|
| a | IO5 |
| b | IO16 |
| c | IO17 |
| d | IO18 |
| e | IO19 |
| f | IO23 |
| g | IO12 |
| dp | IO13 |
ומה שחדש הוא ארבעת קווי בחירת הספרה:
| ספרה | קו | פין |
|---|---|---|
| ראשונה משמאל | D1 | IO14 |
| שנייה | D2 | IO25 |
| שלישית | D3 | IO26 |
| רביעית | D4 | IO27 |

⚠️ זה חיבור ארוך. תעבדו לפי סדר. קודם כל שמונת הסגמנטים עם הנגדים, תבדקו אותם, ורק אז ארבעת קווי הספרה. אם תחברו הכול בבת אחת ומשהו לא יעבוד — לא תדעו איפה להתחיל לחפש.
הבלוקים
הספרות — בדיוק כמו בשיעור הקודם
התוכנית משתמשת באותם בלוקי define שהכרנו: Number0 עד Number9, כל אחד עם שמונה בלוקי set digital pin.

תקראו את define Number1: רק פינים 16 ו-17 על high, כל השאר low — שני הקווים הימניים, הספרה 1. אותה טבלה, אותם פינים, אותו רעיון.
ההבדל היחיד: בשיעור הקודם בלוק כזה הדליק ספרה אחת. כאן הוא מדליק את הצירוף בכל ארבע הספרות בו-זמנית — כי קווי הסגמנט משותפים. מה שקובע מי באמת תיראה זה מה שקורה מיד אחריו.
התוכנית הראשית

בתוך ה-forever יש ארבעה קטעים זהים במבנה. נפרק את הראשון:
- Number1 — הדלק את הצירוף של הספרה 1 על קווי הסגמנט
- set digital pin [27] to [high] — כבה את הספרה הרביעית (זאת שהייתה דולקת קודם)
- set digital pin [14] to [low] — הדלק את הספרה הראשונה
- wait (5) milliseconds — חכה חמש אלפיות שנייה
הקטע הבא עושה בדיוק אותו דבר עם Number2, מכבה את 14 ומדליק את 25. השלישי: Number3, מכבה את 25 ומדליק את 26. הרביעי: Number4, מכבה את 26 ומדליק את 27 — ואז ה-forever מחזיר אותנו להתחלה, שם 27 נכבה שוב.
זוג הבלוקים הזה — אחד high ואחד low — הוא בעצם ״העבר את התור לספרה הבאה״.
למה low מדליק?
זאת נראית טעות, אבל היא לא. קווי בחירת הספרה עובדים הפוך מהסגמנטים.
תחשבו על זה ככה: סגמנט הוא הצינור שדרכו החשמל נכנס, וקו הספרה הוא הצינור שדרכו הוא יוצא החוצה אל GND. כדי שזרם יזרום, שניהם חייבים להיות פתוחים. שולחים low לקו הספרה — ופותחים לו את היציאה. שולחים high — וסוגרים אותה.
- סגמנט על high = הקו הזה מקבל חשמל
- קו ספרה על low = הספרה הזאת מחוברת ל-GND ולכן דולקת
- קו ספרה על high = הספרה הזאת חשוכה
לכן בכל רגע יש בדיוק קו ספרה אחד על low, והשלושה האחרים על high.
מריצים
⬇ להורדת הקובץ Four_digit_Eight_Segment_Display.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.
ההסבר המלא על צריבה נמצא בשיעור ההתקנה.
אחרי הצריבה התצוגה מראה 1234, יציב ורגוע. אין שום סימן לכך שכל ספרה דולקת רק רבע מהזמן.

עכשיו תוכיחו לעצמכם שזה טריק: הניפו את היד מהר מצד לצד מול התצוגה, או הזיזו את הראש בחדות. לרגע תראו את הספרות נפרדות ומרוחות. יש גם דרך יותר קלה — תרגיל 1 למטה.
אם התצוגה מהבהבת בעצמה — ההמתנה ארוכה מדי. תרדו ל-5 אלפיות או פחות.
אם כל ארבע הספרות מראות את אותו דבר — קווי בחירת הספרה לא מחוברים, או ששכחתם את זוגות ה-high וה-low בין הספרות.
מה קרה כאן
בנינו תצוגה שמציגה ארבע ספרות שונות — ובכל רגע נתון דולקת רק אחת.
זה נשמע כמו רמאות, וזאת באמת רמאות. אבל זאת רמאות שנמצאת בכל מסך שראיתם בחיים. כל טלוויזיה, כל מסך טלפון, כל שלט חוצות דיגיטלי — כולם מציירים חלק קטן, מחליפים מהר, וסומכים על כך שהעין שלכם תחבר את הכול לתמונה אחת.
וזה מה שהשיעור הזה באמת מלמד: לפעמים הפתרון ההנדסי לא נמצא בחומרה — הוא נמצא בהבנה של מי שמסתכל. ארבע ספרות עם 32 חוטים היו עובדות. ארבע ספרות עם 12 חוטים וקצת ידע על העין האנושית עובדות לא פחות טוב, וזול בהרבה.
תרגילים
1. תראו את הטריק. שנו את כל ארבעת בלוקי wait (5) milliseconds ל-300. פתאום רואים בדיוק מה קורה — הספרות נדלקות אחת אחרי השנייה כמו אורות רצים. עכשיו רדו ל-100, ל-50, ל-20, ול-5. מצאו בעצמכם את הנקודה שבה ההבהוב נעלם והעין מתחילה להאמין. זה התרגיל הכי חשוב בשיעור.
2. מספר אחר. שנו את ארבעת הבלוקים הוורודים בתוך ה-forever ל-Number2, Number0, Number2 ו-Number6. עכשיו התצוגה מראה 2026. תנסו את שנת הלידה שלכם.
3. ספרה אחת בלבד. גררו החוצה מה-forever את שלושת הקטעים האחרונים והשאירו רק את הראשון. עכשיו רק ספרה אחת דולקת — וזה מוכיח שקווי בחירת הספרה באמת קובעים מי נראית.
4. אתגר — נקודת השעה. בתוך define Number2, שנו את set digital pin [13] to [low] ל-high. עכשיו בכל פעם שמוצגת הספרה 2, הנקודה שלה נדלקת — ותקבלו משהו שנראה כמו 12.34. תחשבו: איך אפשר להשתמש בזה כדי לבנות שעון שמראה שעות ודקות?


