מה נלמד כאן
- איך עובד מונה
- פעולת שארית (
%) - לפרק מספר לספרות
- לבנות מונה עם שלושה כפתורים
מונים
מד צעדים, מד מהירות, לוח תוצאות במשחק, מונה מבקרים. מונים נמצאים בכל מקום שבו צריך לרשום כמה פעמים משהו קרה.

בשיעור הזה נבנה מונה מלא: שלושה כפתורים — הוספה, החסרה ואיפוס — ותצוגת ארבע ספרות.
הידע שצריך
1. איך עובד מונה
1. שליטה בכפתורים — שלושה כפתורים: +1, -1, ואיפוס.
2. עיבוד — הלוח מעדכן את הערך ומוודא שהוא לא חורג מהטווח (0 עד 9999).
3. תצוגה — הערך מוצג בזמן אמת על ארבע הספרות.
2. פעולת שארית — %
וכאן מגיע הכלי המתמטי של השיעור.
פעולת שארית מחזירה את מה שנשאר אחרי חלוקה. בקוד היא מסומנת ב-%.
1234 ÷ 10 = 123, שארית 4

הדימוי הפשוט — תפוחים:
- 4 תפוחים ל-4 אנשים → כל אחד מקבל אחד, שארית 0
- 5 תפוחים ל-4 אנשים → כל אחד מקבל אחד, שארית 1
- 2 תפוחים ל-4 אנשים → אף אחד לא מקבל, שארית 2
3. פירוק מספר לספרות — הטריק
התצוגה צריכה ספרה בכל מקום. אבל המונה מחזיק מספר אחד, למשל 1234. איך מפרידים?
התשובה היא שילוב של חילוק שלמים ו-שארית:
| הספרה | הנוסחה | התוצאה |
|---|---|---|
| יחידות | 1234 % 10 |
4 |
| עשרות | (1234 / 10) % 10 |
3 |
| מאות | (1234 / 100) % 10 |
2 |
| אלפים | 1234 / 1000 |
1 |
איך זה עובד: החלוקה "דוחפת" את הספרה שרוצים לעמדת היחידות, והשארית "קולפת" אותה משם.
לדוגמה, לעשרות: 1234 / 10 = 123 (חילוק שלמים זורק את ה-4), ואז 123 % 10 = 3.
זו טכניקה בסיסית שתשמש אתכם בכל פעם שתציגו מספר על תצוגה בדידה — שעון, מדחום, מד מרחק. שווה לזכור אותה.
הניסוי
המטרה: שלושה כפתורים שולטים במונה, והתוצאה מוצגת בזמן אמת.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| תצוגת ארבע ספרות | 1 |
| לחצנים | 3 |
| נגד 220Ω | 8 |
| נגד 10kΩ | 3 |
זה הפרויקט הגדול ביותר שבניתם עד עכשיו — 12 פינים ו-11 נגדים. תכננו את לוח הניסוי לפני שמתחילים לחבר.
התרשים החשמלי

החיבור

מבנה התוכנית
התוכנית משלבת שלושה דברים שכבר מכירים:
- סריקה דינמית משיעור 15 — להצגת ארבע הספרות
- טיפול בריטוט משיעור 19 — לכל אחד משלושת הכפתורים
- פירוק ספרות מהשיעור הזה — להמיר מספר לארבע ספרות
והלולאה הראשית:
// 1. בודקים כפתורים
if (כפתור_הוספה נלחץ) count++;
if (כפתור_החסרה נלחץ) count--;
if (כפתור_איפוס נלחץ) count = 0;
// 2. מגבילים לטווח
if (count > 9999) count = 9999;
if (count < 0) count = 0;
// 3. מפרקים לספרות
digits[0] = count / 1000;
digits[1] = (count / 100) % 10;
digits[2] = (count / 10) % 10;
digits[3] = count % 10;
// 4. סורקים ומציגים
for (int i = 0; i < 4; i++) {
display_number(i, digits[i]);
delay(5);
}
שימו לב לשלב 2 — הגבלת הטווח. בלעדיו, לחיצה על
-1כשהמונה על 0 תיתן מספר שלילי, והפירוק לספרות ייתן זבל. תמיד תגבילו טווח לפני שמציגים.
מה אמור לקרות

נסו בעצמכם
- הגיעו ל-9999 והוסיפו עוד. עצר? עכשיו הסירו את ההגבלה ונסו שוב.
- הפכו את המונה לשעון עצר: במקום כפתור,
count++כל שנייה. - הוסיפו זמזם שמצפצף בכל 10.
- שלבו עם שיעור 5: המונה עולה בכל פעם שמישהו עובר — מונה מבקרים.
- חשבו: איך תפרקו מספר בן שש ספרות?


