Arduino 中的字符串比较

问题描述

代码要求用户提供颜色(红色、绿色或黄色)并打开 LED。
但是由于某种原因,它不起作用。即使我输入了正确的值(红色、黄色或绿色),所有的 confitions 都被证明是错误
我不知道这段代码不起作用的原因是什么...

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,HIGH);
}  

 }

解决方法

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