יום רביעי, 2 בנובמבר 2016

שיעור מספר 5 / תקשורת טורית בארדואינו

כבל ה USB שימש אותנו עד כה לשני שימושים עיקריים:

1. לצרוב את הקוד שכתבנו במחשב על הארדואינו.

2. לספק מתח לעבודת הארדואינו.

היום נשתמש בכבל ה USB על מנת לתקשר באופן שוטף עם הארדואינו.

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



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




נעתיק את הקוד ונטען אותו בעזרת התכנה לבקר הארדואינו. 



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

נפתח את המסך הסריאלי באחת הדרכים הבאות: 

  • לחיצה על זכוכית המגדלת שבצד הימני של החלון של תכנת הארדואינו
  • לחיצה בחלון הארדואינו על Ctrl+Shift+M
  • בחלון הארדואינו, דרך תפריט כלים >>> מסך סיריאלי
יפתח לנו המסך הבא: 



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

חפשו את תנאי ה if בשורת הקוד ונסו להבין על איזה מקש יש ללחוץ על מנת להפעיל את נורת הלד. 

...

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

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

הצלחתם? 

מה קרה כאן?!

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

מסובך? לא נורא... 

ומשימה קטנה: עיינו בטבלת ה ASCII המצורפת ושנו את הקוד כך שלחיצה על הספרה 8 במקלדת תדליק ותכבה את נורת הלד (התייחסו לטור ה Dec וטור ה Char. התעלמו כרגע מטור ה Hex).

משימה שניה: שימו לב שיש קידוד ASCII שונה לאותיות גדולות ולאותיות קטנות. נסו לשנות את הקוד כך שהאות K תפעיל את הנורה. בדקו אם האות k מצליחה להפעיל את הנורה או לא. תוכלו לגרום גם לאות K וגם לאות k להפעיל את הנורה (באותו הקוד...)? 

ומשימה אחרונה: תוכלו לגרום לכך שכל מקש יפעיל את הנורה? (רמז: נסו להשתמש בסימן אחר בשורת התנאי במקום ==).


בהצלחה! 

אין תגובות:

הוסף רשומת תגובה

הערות? הארות? יש לך משהו חשוב לספר לכולם? שאלות?

נשמח לשמוע!

(התגובה תפורסם בהקדם בכפוף לאישור מערכת מייקינג)