Arduino中的字符串比较

Arduino中的字符串比较,arduino,arduino-c++,Arduino,Arduino C++,此代码要求用户输入颜色(红色、绿色或黄色)并打开LED。 然而,由于某些原因,它不起作用。即使我输入了正确的值(红色、黄色或绿色),所有的配置结果都是错误的 我不知道这个代码不起作用的原因是什么 enter code here void loop() { // put your main code here, to run repeatedly: Serial.println(Msg1); while(Serial.available()==0){} Val=Serial.readStrin

此代码要求用户输入颜色(红色、绿色或黄色)并打开LED。
然而,由于某些原因,它不起作用。即使我输入了正确的值(红色、黄色或绿色),所有的配置结果都是错误的
我不知道这个代码不起作用的原因是什么

enter code here
 
void loop() {
// put your main code here, to run repeatedly:
Serial.println(Msg1);
while(Serial.available()==0){}
Val=Serial.readString();

if (Val=="red") {
  digitalWrite(redLed,HIGH);
  digitalWrite(greenLed,LOW);
  digitalWrite(yLed,LOW);
} else if (Val=="green"){
  digitalWrite(redLed,LOW);
  digitalWrite(greenLed,HIGH);
  digitalWrite(yLed,LOW);
} else if (Val=="yellow") {
  digitalWrite(redLed,LOW);
  digitalWrite(greenLed,LOW);
  digitalWrite(yLed,HIGH);
}  

 }

在readString之后添加Val.trim()将删除空白,程序将按预期运行。

问题出在哪里?是串行打印(Val);打印正确的值?
readString
是否删除了行尾?(CR和/或LF?),并被邀请标记答案,以便帖子显示为已回答。