Arduino中的字符串比较
此代码要求用户输入颜色(红色、绿色或黄色)并打开LED。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
然而,由于某些原因,它不起作用。即使我输入了正确的值(红色、黄色或绿色),所有的配置结果都是错误的
我不知道这个代码不起作用的原因是什么
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?),并被邀请标记答案,以便帖子显示为已回答。