תוכן עניינים:

מסלול מהירות Arduino Hot Hot Part #2 - קוד: 5 שלבים
מסלול מהירות Arduino Hot Hot Part #2 - קוד: 5 שלבים

וִידֵאוֹ: מסלול מהירות Arduino Hot Hot Part #2 - קוד: 5 שלבים

וִידֵאוֹ: מסלול מהירות Arduino Hot Hot Part #2 - קוד: 5 שלבים
וִידֵאוֹ: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, נוֹבֶמבֶּר
Anonim
Image
Image

בחלק הראשון של הפרויקט הזה בנינו את החומרה לאב טיפוס על 2 לוחות לחם.

ובחלק זה נעבור על הקוד, כיצד הוא עובד ולאחר מכן נבדוק אותו.

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

שלב 1: הן MASTER והן SLAVE באותו קוד

הקוד הוא בשני חלקים, אך בתוך אותו קובץ. אני משתמש ב- #define וב- #ifdef כדי לקבוע איזה קוד ייאסף או יתעלם ממנו כדי שאוכל להפריד כל קוד שהוא רק ללוח הלוח MASTER וקוד שהוא רק ללוח הלחם SLAVE.

ביסודו של דבר, אם הגדרת MASTER תימצא, כל קוד שיושב בתוך בלוק קוד MASTER יורכב וכל קוד מחוץ לגוש זה יוסר בזמן הידור.

#ifdef MASTER

// קוד ספציפי למאסטר נמצא כאן

#אַחֵר

#define SLAVE

// קוד ספציפי של עבדים נמצא כאן

#endif

אני משתמש גם באותה טכניקה כדי #define SLAVE כאשר נערך MASTER, כך שאתה רק צריך לדאוג לגבי הגדרת MASTER או לא להגדרת SLAVE.

שלב 2: מודולי BLUETOOTH מדברים באמצעות קריאה וכתיבה סידורי

בפרויקט זה רק לוח הלחם SLAVE מדבר עם לוח הלחם MASTER. ה- MASTER אף פעם לא מדבר בחזרה, הוא רק מקשיב ואז פועל על הנתונים שנכנסים.

המודולים מדברים ומאזינים באמצעות המעמד הסידורי המובנה במערכת האקולוגית לקידוד Arduino.

מודולי Bluetooth מתקשרים עם 38400 באוד, כך ששני נתיבי הקוד מאתחלים את התקשורת הסידרית שלהם באמצעות:

Serial.begin (38400);

וה- SLAVE משתמש ב:

Serial.write (הנתונים כאן);

כדי לדבר עם MASTER וה- MASTER משתמש:

data = Serial.read ();

כדי להאזין לזרם הסדרתי ולקרוא את תוכנו ולשמור אותו בתוך משתנה.

שלב 3: שליטה במרוץ

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

כאשר ה- SLAVE אומר ל- MASTER שמרוץ עומד להתחיל, ה- SLAVE מתחיל לסקר את חיישני ה- IR בצד שלו (תחילת מסלול המרוצים) למכוניות שיעברו מתחת.

כאשר כל מכונית עוברת מתחת לכל חיישן IR, היא שולחת A (מכונית 1) או B (מכונית 2) אל ה- MASTER.

כאשר ה- MASTER מקבל A או B, הוא מאפשר את הטיימר של המכונית הספציפית הזו ואז מחכה שהרכב יעבור מתחת לחיישן ה- IR המתאים בקו הסיום.

התצוגה מתעדכנת כל 50 ms כדי להציג את הזמן הנוכחי של כל מכונית תוך שניות עם 2 נקודות עשרוניות.

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

שלב 4: שאר הקוד

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

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

אתה יכול לתפוס את הקוד של הפרויקט הזה ממאגר github שלי.

שלב 5: מה הלאה?

זהו לבינתיים … בחלק 3 נבחן את העברת הרכיבים מלוח הלחם למשהו קבוע יותר … הישאר מעודכן!

אני מקווה שאתה נהנה מהפרויקט הזה!

עקוב אחריי ב:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

מוּמלָץ: