שיעור 13 - בונוס

הצגת זמן המנצח

לאחר שהצגנו את מספר המקצה על המסך, הגיע הזמן לשלב הבא והמגניב!

אנחנו נציג על המסכים שבקו הסיום את הזמן שלקח למנצח לחצות את המסלול ולסיים את המקצה.

איך נעשה את זה?

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

למרבה הצער ארדואינו זה לא סטופר ואין לו יכולת להתחיל לספור זמן(כמו סטופר), או לדעת מה השעה(כמו שעון רגיל) אבל יש לארדואינו תכונה אחרת שיכולה לעזור לנו, יש לו שעון פנימי שסופר את כמות המילישניות שעברו מרגע שהוא נדלק.
בכל שניה יש 1000 מילישניות, כלומר לאחר שניה מרגע הדלקת הארדאוינו, הוא ידע שעבור 1000 מילישניות, אחרי 2 שניות הוא ידע שעברו 2000 מילישניות וכך הלאה.

בשביל לנצל את היכולת הזו של ארדואינו נשתמש בבלוק שנקרה ״מלישניות מהדלקה״, שנמצא תחת תפריט ״זמן״

כך נשתמש בבלוק הזה על מנת לחשב את זמן המקצה:

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

2) בסוף מקצה נאחסן את הערך של ״מילישניות מהדלקה״ במשתנה שנקרא לו זמן סוף מקצה , הערך שיאוחסן במשתנה הוא בעצם כמות המילישניות שעברו מהדלקת הארדואינו ועד סוף המקצה.

3) נחשב את הזמן של המקצה על ידי חיסור המשתנים:
זמן מקצה = זמן תחילת מקצהזמן סוף מקצה

שלב 1: יצירת משתנים

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

שלב 2: שמירת זמן התחלה

עכשיו נדאג לעדכן את המשתנה זמן תחילת מקצה כל פעם שמקצה מתחיל.

שנו את הקוד כפי שמתואר בסרטון.

שלב 3: שמירת זמן סוף 

עכשיו נעדכן את המשתנה זמן סוף מקצה, נדאג לעשות את זה רק כשיש חציה של קו הסיום (ולכן נמקם את הקוד בתוך התנאי שבודק את זה)

בצעו את השינויים בקוד על פי הסרטון:

שלב 4: הצגת זמן המקצה

עכשיו נציג את הזמן של המנצח על מסך ה7 הסיביות שנמצא במסלול שלו.
אנחנו בעצם נחליף את ההצגה של הספרה ״1״ במסך של המנצח ובמקום נציג את הזמן.
המסך של הרכב המפסיד יציג את הספרה ״2״ כמו קודם ללא שינוי.

בצעו את השינויים בקוד על פי הסרטון:

העלו את הקוד.
זו התוצאה שאתם אמורים לקבל:

סיימנו! 

כל הכבוד! סיימתם את שיעור הבונוס השלישי.

בשיעור הבא נתקדם לשיפורים ושדרוגים נוספים!