A small sketch to show how to implement a command menu using the Serial Monitor of the Arduino IDE. In this example the switch statement is used to identify the received command and execute the corresponding action.
— Command list: —
? -> Print this HELP
a -> LED On “activate”
d -> LED Off “deactivate”
s -> LED “status”
The SKETCH:
/*Serial_LED_02.ino Arduining 4 May 2015 Controlling the LED in pin 13 with the Serial Monitor. --- Command list: --- ? -> Print this HELP a -> LED On "activate" d -> LED Off "deactivate" s -> LED "status" Example using the switch statement. */ #define LED 13 // Pin 13 is connected to the LED char rxChar= 0; // RXcHAR holds the received command. //=== function to print the command list: =========================== void printHelp(void){ Serial.println("--- Command list: ---"); Serial.println("? -> Print this HELP"); Serial.println("a -> LED On \"activate\""); Serial.println("d -> LED Off \"deactivate\""); Serial.println("s -> LED \"status\""); } //---------------- setup --------------------------------------------- void setup(){ Serial.begin(9600); // Open serial port (9600 bauds). pinMode(LED, OUTPUT); // Sets pin 13 as OUTPUT. Serial.flush(); // Clear receive buffer. printHelp(); // Print the command list. } //--------------- loop ----------------------------------------------- void loop(){ if (Serial.available() >0){ // Check receive buffer. rxChar = Serial.read(); // Save character received. Serial.flush(); // Clear receive buffer. switch (rxChar) { case 'a': case 'A': // If received 'a' or 'A': if (digitalRead(LED) == LOW){ // If LED is Off: digitalWrite(LED,HIGH); // Turn On the LED. Serial.println("LED turned On"); } else Serial.println("LED already On!"); break; case 'd': case 'D': // If received 'd' or 'D': if (digitalRead(LED) == HIGH){ // If LED is On: digitalWrite(LED,LOW); // Turn Off the LED. Serial.println("LED turned Off"); } else Serial.println("LED already Off!"); break; case 's': case 'S': // If received 's' or 'S': if (digitalRead(LED) == HIGH) // Read LED status. Serial.println("LED status: On"); else Serial.println("LED status: Off"); break; case '?': // If received a ?: printHelp(); // print the command list. break; default: Serial.print("'"); Serial.print((char)rxChar); Serial.println("' is not a command!"); } } } // End of the Sketch.
