Menu
CoddyTech

שני כפתורים בו־זמנית

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

לכל כפתור יש פין משלו וקריאה משלו ל־digitalRead(). הלוח קורא אותם בזה אחר זה, אבל מהר כל כך שמבחינתך זה קורה באותו רגע.

במכונות במפעל יש לעיתים קרובות שני כפתורים במרחק זה מזה, והן פועלות רק כל עוד שני הכפתורים לחוצים. שתי הידיים נמצאות על הכפתורים, כך שאף אחת מהן לא יכולה להיות ליד הלהב. הכלל הזה הוא &&, מתוך שילוב תנאים:

bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;

if (left && right) {
  // שני הכפתורים לחוצים
}

שני הפינים צריכים להיות מוגדרים כ־INPUT_PULLUP. אם שוכחים להגדיר אחד מהם, הפין הזה נשאר צף, ובמקרה הזה הוא נקרא כ־LOW, כאילו הכפתור שלו היה לחוץ תמיד.

challenge icon

אתגר

קל

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

  • הגדר את הפינים 2 ו-3 ל-INPUT_PULLUP
  • קרא את המצב של כל כפתור לתוך bool
  • הדלק את ה-LED כששני הכפתורים לחוצים, אחרת כבה אותו

לחץ על Run, החזק כפתור אחד, ואז את שניהם, ואז לחץ על Check.

נסו בעצמכם

const int leftPin = 2;
const int rightPin = 3;
const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  // הגדר את שני הפינים של הכפתורים ל-INPUT_PULLUP
}

void loop() {
  // קרא את מצב שני הכפתורים, והדלק את ה-LED רק כל עוד שניהם לחוצים
}
quiz iconבחנו את עצמכם

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

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

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