הבהוב שמאיץ
חלק מהיחידה המעגלים הראשונים במסלול ה-Arduino של Coddy. שיעור 17 מתוך 22.
delay(waitTime) ממתינה למה שהמשתנה waitTime מכיל באותו רגע. שנה את המשתנה בזמן שהסקץ׳ פועל, וההבהוב ישתנה בהתאם.
waitTime = waitTime - 100; // ההבהוב הבא קצר יותר ב-100 msהוסף את זה בסוף loop(), וכל הבהוב יהיה קצר יותר מזה שקדם לו.
צפה במה שקורה כשהסקץ׳ פועל במשך זמן מה. זמן ההמתנה מצטמצם ל־0, ואז יורד מתחת ל־0. delay() לא יכולה להמתין זמן שלילי: היא קוראת את -200 כמספר עצום, בערך 49 ימים, ולכן נראה שנורית ה־LED קפאה. הסקץ׳ צריך להחליט בעצמו מתי להפסיק להקטין את זמן ההמתנה, ועל כך עוסק השיעור הבא.
אתגר
קלגרמו ל־LED בפין 13 להבהב מהר יותר ויותר:
- בחלק העליון, הגדירו
int waitTime = 1000; - ב־
loop(), הבהבו עםdelay(waitTime)בשתי ההמתנות - בסוף
loop(), הקטינו אתwaitTimeב־200
לחצו על Run וצפו עד שהוא קופא, ואז לחצו על Check.
נסו בעצמכם
// הגדר כאן את waitTime
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
// הקטן את waitTime
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה המעגלים הראשונים
תרגלו בעצמכם: Arduino אונליין