Menu
CoddyTech

המשיכה הפנימית למעלה

חלק מהיחידה קלטים במסלול ה-Arduino של Coddy. שיעור 3 מתוך 22.

השתמשת ב־INPUT_PULLUP מאז השיעור קריאת לחצן. הוא מפעיל נגד בתוך הלוח, בערך 20k עד 50k אוהם, מהפין ל־5V: הנגד הנמשך למטה מהשיעור הקודם, רק בכיוון ההפוך, בלי רכיב נוסף. הלחצן רק מחבר את הפין ל־GND.

העניין הוא שהלוגיקה הפוכה: במצב לא לחוץ מתקבל HIGH, בלחיצה מתקבל LOW, וקל להתבלבל עם == LOW שמופיע שוב ושוב בסקץ'. השוואה כמו digitalRead(2) == LOW היא בעצמה true או false, ו־bool הוא משתנה שמכיל true או false. שמור אותו בשם שמבהיר מה הוא מייצג:

bool pressed = digitalRead(2) == LOW;

if (pressed) {
  // הכפתור לחוץ
}

מכאן ואילך הקוד נקרא בכיוון הנכון. הדפסה של bool מציגה 1 עבור true ו־0 עבור false.

challenge icon

אתגר

קל

הכפתור מחבר את פין 2 ל-GND, וה-LED מחובר לפין 13:

  • הגדר את פין 2 ל-INPUT_PULLUP
  • שמור את digitalRead(buttonPin) == LOW במשתנה bool בשם pressed
  • הדפס את pressed, הדלק את ה-LED כשהערך שלו הוא true, ואז המתן 100 ms

Check מצפה ל-1 כל עוד הכפתור לחוץ, ול-0 כשהוא משוחרר. לחץ על Run, החזק את הכפתור לחוץ, ואז לחץ על Check.

נסו בעצמכם

const int buttonPin = 2;
const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  // הפעל את נגד המשיכה למעלה של פין הכפתור
}

void loop() {
  // bool pressed = ...
  // הדפס את הערך, הדלק את ה-LED כל עוד הוא true, המתן 100 ms
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה קלטים

תרגלו בעצמכם: Arduino אונליין