מה נלמד כאן
- פעולת שארית (
%) - לפרק מספר לספרות
- מונה עם שלושה כפתורים
מונים

מד צעדים, לוח תוצאות, מונה מבקרים.
הידע שצריך
1. שלושת השלבים
כפתורים (+1, -1, איפוס) → עיבוד עם הגבלת טווח → תצוגה.
2. פעולת שארית

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

החיבור

מבנה התוכנית
count = 0
while True:
# 1. כפתורים
if btn_up.value() == 0:
time.sleep(0.2)
while btn_up.value() == 0: pass
count += 1
if btn_down.value() == 0:
time.sleep(0.2)
while btn_down.value() == 0: pass
count -= 1
if btn_reset.value() == 0:
time.sleep(0.2)
while btn_reset.value() == 0: pass
count = 0
# 2. הגבלת טווח
count = max(0, min(9999, count))
# 3. פירוק לספרות
digits = [count // 1000, (count // 100) % 10, (count // 10) % 10, count % 10]
# 4. סריקה
for i in range(4):
display_number(i, digits[i])
time.sleep_ms(5)
שימו לב לשורה
count = max(0, min(9999, count))— בשורה אחת היא מגבילה את הערך משני הכיוונים. בלעדיה,-1על 0 ייתן מספר שלילי והפירוק ייתן זבל.תמיד תגבילו טווח לפני שמציגים.
מה אמור לקרות

נסו בעצמכם
- הגיעו ל-9999 והוסיפו. עצר? עכשיו הסירו את ההגבלה ונסו שוב.
- הפכו לשעון עצר:
count += 1כל שנייה. - הוסיפו זמזם בכל 10.
- נסו
/במקום//. איזו שגיאה מקבלים, ולמה? - איך תפרקו מספר בן שש ספרות?


