📋 درس 62: منوی سریال با switch-case

از کامپیوتر فرمان بفرست: ۱، ۲، ۳ — و آردوینو اطاعت می‌کند.

سطح: متوسط · زمان: حدود 15 دقیقه · مفاهیم: switch، case، سریال

قدم‌های این درس

  1. چرا منو؟
  2. قدم ۱ — دو LED و یک بازر
  3. قدم ۲ — switch روی یک حرف
  4. اشتباه رایج: break فراموش‌شده
  5. چالش: فرمان‌های بیشتر

نمونه‌ای از کد این درس

const int RED = 13, GREEN = 12, BUZZER = 8;
bool redOn = false, greenOn = false;

void showMenu() {
  Serial.println("--- MENU ---");
  Serial.println("1 = red LED on/off");
  Serial.println("2 = green LED on/off");
  Serial.println("3 = beep");
  Serial.println("0 = all off");
}

void setup() {
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  Serial.begin(9600);
  showMenu();
}

void loop() {
  if (Serial.available() > 0) {
    char c = Serial.read();        // one character
    switch (c) {
      case '1':
        redOn = !redOn;
        digitalWrite(RED, redOn);
        Serial.println(redOn ? "red ON" : "red OFF");
        break;
      case '2':
        greenOn = !greenOn;
        digitalWrite(GREEN, greenOn);
        Serial.println(greenOn ? "green ON" : "green OFF");
        break;
      case '3':
        tone(BUZZER, 880, 200);
        Serial.println("beep!");
        break;
      case '0':
        redOn = false;
        greenOn = false;
        digitalWrite(RED, LOW);
        digitalWrite(GREEN, LOW);
        Serial.println("all off");
        break;
      case '\n':
      case '\r':
        break;                     // ignore Enter
      default:
        Serial.println("?? unknown command");
        showMenu();
        break;
    }
  }
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🧮

درس 61: توابعی که جواب برمی‌گردانند

🖲️

درس 63: لرزش دکمه و debounce