Menu
CoddyTech

בחירה באמצעות switch

חלק מהיחידה תזמון ללא Delay במסלול ה-Arduino של Coddy. שיעור 8 מתוך 18.

כשמשתנה אחד יכול לקבל כמה ערכים, ולכל ערך דרוש קוד משלו, שרשרת של if ו־else if מתארכת. switch עושה את אותה העבודה ונראה כמו רשימה:

switch (zone) {
  case 0:
    // מתבצע כאשר zone הוא 0
    break;
  case 1:
    // מתבצע כאשר zone הוא 1
    break;
  default:
    // מתבצע כאשר אף מקרה לא התאים (אופציונלי)
    break;
}

switch קופץ אל ה־case שהמספר שלו תואם, ומריץ את השורות שמתחתיו. break יוצא מה־switch. אם שוכחים break, הלוח ממשיך גם לשורות של המקרה הבא, וזה נקרא נפילה למקרה הבא.

כאן הכפתור מחולק לארבעה אזורים. analogRead() מחזירה ערך בין 0 ל־1023, וחלוקה ב־256 נותנת מספר שלם: 0 ברבע התחתון, ואז 1, 2 ו־3 בחלק העליון. כל אזור מציג צבע משלו בנורת ה־RGB.

challenge icon

אתגר

קל

הפוך את הכפתור לבורר צבעים באמצעות switch:

  • אזור 0: אדום (כבר כתוב)
  • אזור 1: ירוק
  • אזור 2: כחול
  • אזור 3: לבן (שלושתם דולקים)

השתמש ב־setColor() וסיים כל מקרה ב־break;. לחץ על Run, סובב את הכפתור ואז לחץ על Check.

נסו בעצמכם

const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void setColor(int red, int green, int blue) {
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

void loop() {
  int zone = analogRead(A0) / 256;   // 0, 1, 2 או 3

  switch (zone) {
    case 0:
      setColor(HIGH, LOW, LOW);   // אדום
      break;
    // הוסף כאן את האזורים 1, 2 ו-3
  }
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה תזמון ללא Delay

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