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