I want to control the servo motor using switch case statement but i stuck. The servo something working fine when i enter the alphabet but sometimes its cannot detect when i enter the value. Please help me. i post my code here for review
#include <Servo.h>
Servo myservo;
//char myCol[20];
int pos = 0;
void setup() {
Serial.begin(9600);
myservo.attach(9);
myservo.write(pos);
Serial.println("Press E for easy level mode");
Serial.println("Press N for normal level mode");
Serial.println("Press H for hard level mode");
}
void loop() {
if (Serial.available())
Serial.readBytes(myCol, 1);
//char level = Serial.readBytes(myCol, 1);
//char level = Serial.read();
int input = Serial.read();
switch (input)
{
case 'E': // easy level
//(strcmp(myCol, "E") == 0);
//pos = 30;
for (pos = 0; pos <= 30; pos += 10){
myservo.write(pos);}
for (pos = 30; pos >= 0; pos -= 10){
myservo.write(pos);
break;
case 'N': // normal level
//(strcmp(myCol, "N") == 0);
//pos = 60;
for (pos = 0; pos <= 60; pos += 10){
myservo.write(pos);}
for (pos = 60; pos >= 0; pos -= 10){
myservo.write(pos);
break;
case 'H': // hard level
//(strcmp(myCol, "H") == 0);
// pos = 90;
for (pos = 0; pos <= 90; pos += 10){
myservo.write(pos);}
for (pos = 90; pos <= 0; pos -= 10){
myservo.write(pos);
break;
}
}
}
}
}