דלגו לתוכן המרכזי
KitLab
שיעור קודם
תצוגת ארבע ספרות — סריקה שמרמה את העין· 18 / 41
תצוגת ארבע ספרות — סריקה שמרמה את העין
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

תצוגת ארבע ספרות — סריקה שמרמה את העין

מה בשיעור?

  • להסביר מה זו תופעת הבזק הראייה ואיך היא עובדת
  • להבין למה ארבע ספרות חולקות את אותם שמונה קווי סגמנט
  • לזהות את ארבעת קווי בחירת הספרה D1 עד D4
  • לתאר מהי סריקה דינמית ולמה היא נראית כמו תצוגה רציפה
  • לחבר תצוגת ארבע ספרות עם שמונה נגדים
  • לקרוא לולאה שמחליפה ספרה כל 5 אלפיות שנייה

מה נלמד כאן

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

שעון שמראה רק ספרה אחת

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

שעון מעורר דיגיטלי מעץ שמציג 12:30 על שידה ליד מיטה

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

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

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


הידע שצריך

הבזק ראייה

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

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

התמונה הזאת מפורסמת. היא צולמה לפני יותר ממאה וחמישים שנה כדי לענות על שאלה: האם סוס דוהר מרים את כל ארבע הרגליים באוויר בו-זמנית? הצלם העמיד שורה של מצלמות וצילם תמונה אחרי תמונה.

וכשמריצים את התמונות האלה מהר — רואים סוס שרץ. אין שם שום תנועה. יש שתים עשרה תמונות קפואות. המוח שלכם ממלא את החורים.

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

החולשה הזאת של העין היא בדיוק מה שנשתמש בו היום.

תצוגת ארבע הספרות

הרכיב נראה כמו ארבע תצוגות שהודבקו זו לזו בתוך קופסה אחת ארוכה:

תצוגת ארבע ספרות אדומה עם רגליים מסומנות E, D, Dp, C, G ו-D4

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

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

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

  • שמונה קווי סגמנט (a עד g ו-dp)משותפים לכל ארבע הספרות. כשאתם מדליקים את הסגמנט a, אתם מדליקים אותו בכל ארבעתן בבת אחת.
  • ארבעה קווי בחירת ספרה (D1 עד D4) — כל אחד שייך לספרה אחת בלבד, ותפקידו להחליט מי מהארבע מקבלת חשמל עכשיו.

סך הכול: 8 ועוד 4 = 12 חוטים במקום 32.

אז איך מציגים ארבע ספרות שונות?

עכשיו נראה שיש בעיה חמורה. אם קווי הסגמנט משותפים, ואנחנו מדליקים את הצירוף של הספרה 1 — כל ארבע הספרות יראו 1. אי אפשר להראות 1234, רק 1111 או 2222.

הפתרון: לא מדליקים אותן ביחד. מדליקים אותן בתורות.

זה הולך ככה, וזה חוזר בלי הפסקה:

  1. הדלק את הצירוף של הספרה 1, ופתח רק את D1. עכשיו הספרה הראשונה מציגה 1 והשאר חשוכות.
  2. חכה 5 אלפיות שנייה.
  3. הדלק את הצירוף של 2, וסגור את D1 ופתח את D2. עכשיו רק השנייה דולקת.
  4. חכה 5 אלפיות.
  5. אותו דבר לשלישית עם 3, ולרביעית עם 4.
  6. חזור להתחלה.

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

השיטה הזאת נקראת סריקה דינמית (dynamic scanning), או ריבוב. אותו רעיון בדיוק שהופך שתים עשרה תמונות של סוס לסוס דוהר.


החיבור

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

תרשים חשמלי של תצוגת ארבע הספרות עם נגדים של 220 אוהם ופינים IO19, IO18, IO13, IO17, IO12 ו-IO27

קווי הסגמנט מחוברים בדיוק כמו בשיעור 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

תצוגת ארבע הספרות נעוצה בלוח ניסוי עם שמונה נגדים והרבה חוטים צבעוניים אל לוח ה-ESP32

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


הבלוקים

הספרות — בדיוק כמו בשיעור הקודם

התוכנית משתמשת באותם בלוקי define שהכרנו: Number0 עד Number9, כל אחד עם שמונה בלוקי set digital pin.

בלוקי define בשם Number0 עד Number5, כל אחד עם שמונה בלוקי set digital pin

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

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

התוכנית הראשית

בלוקי define נוספים ולידם התוכנית הראשית: לולאת forever שמריצה את Number1 עד Number4 ומחליפה קווי ספרה עם המתנה של 5 אלפיות שנייה

בתוך ה-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, יציב ורגוע. אין שום סימן לכך שכל ספרה דולקת רק רבע מהזמן.

לוח ESP32 מחובר ללוח ניסוי, ותצוגת ארבע הספרות מציגה מספר באדום

עכשיו תוכיחו לעצמכם שזה טריק: הניפו את היד מהר מצד לצד מול התצוגה, או הזיזו את הראש בחדות. לרגע תראו את הספרות נפרדות ומרוחות. יש גם דרך יותר קלה — תרגיל 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. תחשבו: איך אפשר להשתמש בזה כדי לבנות שעון שמראה שעות ודקות?

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

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