Serial.read() issue. Thanks.

I'm having an issue with Arduino code. Regardless of entry, serial.read() function returns a value of somewhere between 50 and 55 for int PWM variable. If anyone has any ideas, please let me know. Here's what I have so far.

Quad LED PWM with serial interface:

void setup() {

pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);

delay(54);
Serial.begin(9600); //set 9600 baud rate.
Serial.println("Initialized");
delay(500);
PromptColor();
}

int ActiveLed;
String TargetLED;
String PWMValue;

void loop(){

}

void PromptColor() {
Serial.println("Enter Selected LED Color:");
delay(100);
ReadColor();
}

void PromptPWM(String LEDColor, int LedPin) {
Serial.print("Enter ");
Serial.print(LEDColor);
Serial.println(" LED PWM Value:");
ReadPWM(LedPin, LEDColor);
}

void ReadColor() {

String TargetLED = Serial.readString();

if (TargetLED.equalsIgnoreCase("Yellow")) {
TargetLED = "Yellow";
ActiveLed = 5;
PromptPWM(TargetLED,5);}

if (TargetLED.equalsIgnoreCase("Red")) {
TargetLED = "Red";
ActiveLed = 6;
PromptPWM(TargetLED,6);}

if (TargetLED.equalsIgnoreCase("Green")) {
TargetLED = "Green";
ActiveLed = 9;
PromptPWM(TargetLED,9);}

if (TargetLED.equalsIgnoreCase("Blue")) {
TargetLED = "Blue";
ActiveLed = 10;
PromptPWM(TargetLED,10);}

else delay(2000);
ReadColor();
}

// Everything works up to this point.

void ReadPWM(int LedPin, String LEDColor) {

if (Serial.available()) {

int PWM = Serial.read();

if (PWM>=0 and PWM<=100) {
Serial.print(LEDColor);
Serial.print(" LED PWM Value Set to: ");
Serial.println(PWM);
analogWrite(LedPin, map(PWM,0,100,0,255));}
}

else {
delay(1000);
analogWrite(LedPin, 0);
ReadPWM(LedPin, LEDColor);
}

PromptColor();}

I'm using an UNO board, IDE 1.8.7.

Thanks a bunch.

Please correct your post above and add code tags around your code:
[code]`` [color=blue]// your code is here[/color] ``[/code].

It should look like this:// your code is here
(Also press ctrl-T (PC) or cmd-T (Mac) in the IDE before copying to indent your code properly)
———-

Why does ReadColor() calls itself recursively ?

Serial.read() will only read one incoming byte from the Serial line, what are you expecting ?

You should explore Serial Input Basics