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

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

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

תצוגת ספרה — שמונה קווים שיוצרים כל מספר

מה בשיעור?

  • להסביר איך שמונה קווים מרכיבים כל ספרה
  • לזהות את הסגמנטים a עד g ואת הנקודה dp
  • לקרוא טבלת סגמנטים ולתרגם ספרה לרשימת הדלקות
  • לחבר שמונה נגדים ושמונה חוטים בלי להתבלבל
  • לבנות בלוק חדש משלכם עם define
  • להריץ רצף ספרות בלולאת forever עם השהיה

מה נלמד כאן

  • מאיפה מגיעות הספרות שרואים בשעון דיגיטלי ובמעלית
  • שמונת הסגמנטים — a עד g, ועוד נקודה
  • לקרוא טבלה שמתרגמת ספרה לרשימת הדלקות
  • define — איך בונים בלוק חדש משלכם ונותנים לו שם
  • להריץ 0 עד 9 בלולאה

הספרות שרואים בכל מקום

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

הספרה שמונה בתאורת ניאון כחולה על רקע רחוב עירוני

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

תנסו את זה בעצמכם: קחו דף, ציירו ספרה 8 מרובעת, ועכשיו מחקו את שני הקווים השמאליים ואת הקו האמצעי. מה קיבלתם? את הספרה 7. תמחקו קווים אחרים ותקבלו 3, או 5, או 4. כל ספרה היא 8 עם חלקים כבויים.

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


הרכיבים

תצוגת הסגמנטים

זהו רכיב שחור קטן עם חלון אדום ועם עשר רגליים — חמש למעלה וחמש למטה.

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

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

לכל סגמנט יש אות משלו. זה לא שרירותי, זאת שיטה שכל העולם משתמש בה:

תרשים הסגמנטים a עד g והנקודה dp, עם מספרי הרגליים, וסכמה של שמונה נוריות שמחוברות לנקודת GND משותפת

  • a — הקו העליון
  • b — הקו הימני העליון
  • c — הקו הימני התחתון
  • d — הקו התחתון
  • e — הקו השמאלי התחתון
  • f — הקו השמאלי העליון
  • g — הקו האמצעי
  • dp — הנקודה בפינה (decimal point, נקודה עשרונית)

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

הטבלה שמתרגמת ספרה לקווים

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

ספרה a b c d e f g dp
0 1 1 1 1 1 1 0 0
1 0 1 1 0 0 0 0 0
2 1 1 0 1 1 0 1 0
3 1 1 1 1 0 0 1 0
4 0 1 1 0 0 1 1 0
5 1 0 1 1 0 1 1 0
6 1 0 1 1 1 1 1 0
7 1 1 1 0 0 0 0 0
8 1 1 1 1 1 1 1 0
9 1 1 1 1 0 1 1 0

1 אומר דולק, 0 אומר כבוי. תקראו את שורת ה-8 — כולם דולקים חוץ מהנקודה, וזה הגיוני: 8 היא הספרה המלאה. ותקראו את שורת ה-1 — רק b ו-c, שני הקווים הימניים. בדיוק כמו שכותבים 1 ביד על מסך דיגיטלי.

תבדקו את שורת ה-5 בעצמכם על התרשים למעלה: a, c, d, f, g דולקים; b, e כבויים. זה באמת יוצא 5.

נגדים — שמונה מהם

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


החיבור

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

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

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

סגמנט פין
a IO5
b IO16
c IO17
d IO18
e IO19
f IO23
g IO12
dp IO13

ורגל ה-GND של התצוגה הולכת ל-GND בלוח.

והנה איך זה נראה על לוח הניסוי:

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

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

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


הבלוקים

כאן נכיר רעיון חדש וחשוב מאוד — בלוק שאתם בונים בעצמכם.

הבעיה

כדי להציג ספרה אחת צריך שמונה בלוקי set digital pin [5] to [high], אחד לכל סגמנט. בשביל עשר ספרות זה שמונים בלוקים. ואם נרצה להריץ את הרצף פעמיים, נצטרך מאה שישים. זה לא סביר.

הפתרון — define

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

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

תסתכלו על define Number0. בתוכו יושבים שמונה בלוקים, בסדר קבוע — פינים 5, 16, 17, 18, 19, 23, 12, 13:

  • set digital pin [5] to [high] — סגמנט a דולק
  • set digital pin [16] to [high] — b דולק
  • set digital pin [17] to [high] — c דולק
  • set digital pin [18] to [high] — d דולק
  • set digital pin [19] to [high] — e דולק
  • set digital pin [23] to [high] — f דולק
  • set digital pin [12] to [low] — g כבוי
  • set digital pin [13] to [low] — הנקודה כבויה

זאת בדיוק שורת ה-0 מהטבלה. שישה HIGH ושני LOW. הטבלה שקראתם למעלה הפכה לבלוקים אחד לאחד.

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

לבלוק set digital pin יש שתי תיבות בחירה: הפין, ומצב high או low. שימו לב שכל עשרת הבלוקים האלה משתמשים בדיוק באותם שמונה פינים — מה שמשתנה הוא רק סדרת ה-high וה-low.

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

לולאת forever שקוראת ל-Number0 עד Number9 עם המתנה של 500 אלפיות שנייה, ולידה בלוק define Number9

וזה הרגע שבו רואים כמה define חוסך. בתוך ה-forever יש רק זוגות של בלוקים:

  • Number0 — הצג אפס
  • wait (500) milliseconds — חכה חצי שנייה
  • Number1 — הצג אחת
  • wait (500) milliseconds

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

מימין רואים גם את define Number9 — שמונה בלוקים, בדיוק לפי שורת ה-9 בטבלה: הכול דולק חוץ מ-e ומהנקודה.

wait (500) milliseconds הוא חצי שנייה. שימו לב שהיחידה כאן היא אלפיות שנייה ולא שניות — 500 אלפיות = 0.5 שנייה.


מריצים

⬇ להורדת הקובץ Eight_Segment_Display.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.

ההסבר המלא על צריבה נמצא בשיעור ההתקנה.

אחרי הצריבה התצוגה מתחילה לספור: 0, 1, 2, 3... עד 9, חצי שנייה לכל ספרה, ואז חוזרת לאפס ומתחילה מחדש.

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

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

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


מה קרה כאן

שתי מסקנות מהשיעור הזה, ושתיהן ילוו אתכם הלאה.

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

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

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


תרגילים

1. ספירה איטית. שנו את כל בלוקי wait (500) milliseconds ל-1000. עכשיו כל ספרה נשארת שנייה שלמה. נסו גם 100 — ותראו שבמהירות הזאת קשה כבר לקרוא את הספרות.

2. הדליקו את הנקודה. בתוך define Number5, שנו את set digital pin [13] to [low] ל-high. עכשיו הספרה 5 תופיע עם נקודה בפינה — 5. רק היא, כל השאר בלי.

3. ספירה לאחור. סדרו מחדש את הבלוקים בתוך ה-forever כך שהסדר יהיה Number9, Number8, Number7 ועד Number0. גוררים כל זוג בלוקים למקומו — התוצאה היא ספירה לאחור כמו בשיגור טיל.

4. אתגר — האות A. בנו define חדש בשם LetterA. לפי הציור: האות A צריכה את a, b, c, e, f, g דולקים ו-d כבוי. תרגמו את זה לשמונה בלוקי set digital pin ותגררו את LetterA לתוך ה-forever. אחרי שזה עובד, נסו גם את E ואת C.

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

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

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