Arduino: Switch Case 2

From OnnoWiki
Jump to navigation Jump to search

Sumber: https://docs.arduino.cc/built-in-examples/control-structures/SwitchCase2

Pernyataan if memungkinkan kita untuk memilih di antara dua opsi terpisah, TRUE atau FALSE. Bila ada lebih dari dua opsi, kita dapat menggunakan beberapa pernyataan if, atau kita dapat menggunakan pernyataan switch. Switch memungkinkan kita untuk memilih di antara beberapa opsi diskrit.

Tutorial ini menunjukkan cara menggunakan switch untuk menyalakan salah satu dari beberapa LED berbeda berdasarkan satu byte data yang diterima secara serial. Program sketch mendengarkan input serial, dan menyalakan LED berbeda untuk karakter a, b, c, d, atau e.


Hardware Required

  • Arduino Board
  • 5 LEDs
  • 5 220 ohm resistor
  • kabel jumper
  • breadboard

Circuit

Lima LED dipasang pada pin digital 2, 3, 4, 5, dan 6 secara seri melalui resistor 220 ohm.

Untuk membuat sketch ini berfungsi, board arduino kita harus terhubung ke komputer. Di Arduino IDE buka monitor serial dan kirim karakter a, b, c, d, atau e untuk menyalakan LED yang sesuai, atau apa pun untuk mematikannya.


Circuitswitchcase2.png


Schematic

tumb


Code

/*
  Switch statement with serial input
  Demonstrates the use of a switch statement. The switch statement allows you
  to choose from among a set of discrete values of a variable. It's like a
  series of if statements.

  To see this sketch in action, open the Serial monitor and send any character.
  The characters a, b, c, d, and e, will turn on LEDs. Any other character will
  turn the LEDs off.

  The circuit:
  - five LEDs attached to digital pins 2 through 6 through 220 ohm resistors
  created 1 Jul 2009

 by Tom Igoe
 This example code is in the public domain.
 http://www.arduino.cchttps://www.arduino.cc/en/Tutorial/SwitchCase2
*/

void setup() {
  // initialize serial communication:
  Serial.begin(9600);
  // initialize the LED pins:
  for (int thisPin = 2; thisPin < 7; thisPin++) {
    pinMode(thisPin, OUTPUT);
  }
}

void loop() {
  // read the sensor:
  if (Serial.available() > 0) {
    int inByte = Serial.read();
    // do something different depending on the character received.
    // The switch statement expects single number values for each case; in this
    // example, though, you're using single quotes to tell the controller to get
    // the ASCII value for the character. For example 'a' = 97, 'b' = 98,
    // and so forth:
    switch (inByte) {
      case 'a':
        digitalWrite(2, HIGH);
        break;
      case 'b':
        digitalWrite(3, HIGH);
        break;
      case 'c':
        digitalWrite(4, HIGH);
        break;
      case 'd':
        digitalWrite(5, HIGH);
        break;
      case 'e':
        digitalWrite(6, HIGH);
        break;
      default:
        // turn all the LEDs off:
        for (int thisPin = 2; thisPin < 7; thisPin++) {
          digitalWrite(thisPin, LOW);
        }
    }
  }
}


Referensi