Switch (case) Statement, used with serial input
Pada tutorial kali ini saya akan memberikan 2 Contoh Program Menentukan hari. Yaitu dengan menggunakan perintah Switch Case dan perintah Else IF. Sebenarnya Logika Switch Case Dengan IF itu sama saja perbedaanya adalah Switch Case hanya bisa dinyatakan dengan bilangan bulat atau karakter sedangkan IF bisa juga menggunakan operasi, =.
An if statement allows you to choose between two discrete options, TRUE or FALSE. When there are more than two options, you can use multiple if statements, or you can use the switch statement. Switch allows you to choose between several discrete options.
This tutorial shows you how to use switch to turn on one of several different LEDs based on a byte of data received serially. The sketch listens for serial input, and turns on a different LED for the characters a, b, c, d, or e.
Hardware Required
- Arduino or Genuino Board
- 5 LEDs
- 5 220 ohm resistors
- hook-up wires
- breadboard
Circuit
Five LEDs are attached to digital pins 2, 3, 4, 5, and 6 in series through 220 ohm resistors.
![Switch Switch](/uploads/1/2/3/7/123736495/932028389.png)
To make this sketch work, your board must be connected to your computer. In the Arduino IDE open the serial monitor and send the characters a, b, c, d, or e to lit up the corresponding LED, or anything else to switch them off.
click the image to enlarge
image developed using Fritzing. For more circuit examples, see the Fritzing project page
![Program Program](/uploads/1/2/3/7/123736495/253301790.jpeg)
Schematic
click the image to enlarge
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.cc/en/Tutorial/SwitchCase2
*/
voidsetup(){
// initialize serial communication:
Serial.begin(9600);
// initialize the LED pins:
for(int thisPin =2; thisPin <7; thisPin++){
pinMode(thisPin,OUTPUT);
}
}
voidloop(){
// 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);
}
}
}
}
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.cc/en/Tutorial/SwitchCase2
*/
voidsetup(){
// initialize serial communication:
Serial.begin(9600);
// initialize the LED pins:
for(int thisPin =2; thisPin <7; thisPin++){
pinMode(thisPin,OUTPUT);
}
}
voidloop(){
// 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);
}
}
}
}
See Also
- serial.begin()
- serial.read()
- serial.available()
- digitalWrite()
- Arrays - A variation on the For Loop example that demonstrates how to use an array.
- ForLoopIteration - Control multiple LEDs with a for loop.
- IfStatementConditional - Use an ‘if statement’ to change the output conditions based on changing the input conditions.
- switchCase - How to choose between a discrete number of values.
- WhileStatementConditional - How to use a while loop to calibrate a sensor while a button is being read.
Last revision 2015/08/11 by SM