המשיכה הפנימית למעלה
חלק מהיחידה קלטים במסלול ה-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.
אתגר
קלהכפתור מחבר את פין 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
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה קלטים
1כפתורים
הצגת מצב הכפתורנגד משיכה למטההמשיכה הפנימית למעלההחלפת מצב בכל לחיצהספירת לחיצות על הכפתורמניעת ריטוט של כפתורשני כפתורים בו־זמניתתרגלו בעצמכם: Arduino אונליין