Arduino 中的字符串比较

String comparison in Arduino

此代码要求用户输入颜色(红色、绿色或黄色)并打开 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() 将删除空格,您的程序将按预期 运行。