请帮助我失明
void commandline() {
if (Serial.available() > 0)
{
String command = Serial.readStringUntil(' ');
String commandvar = Serial.readString();
Serial.print(command);
Serial.print(" | ");
Serial.println(commandvar);
if ( command == "fans" || command == "Fans" || command == "FANS" )
{
Serial.println("Command Recognized");
if ( commandvar == "on" || commandvar == "On" || commandvar == "ON" )
{
Serial.println(" Fans are now ON");
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
else if ( commandvar == "off" || commandvar == "Off" || commandvar == "OFF" )
{
Serial.println(" Fans are now OFF");
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
else
{
Serial.println("commandvar isn't valid");
}
}
当我查看串行控制台并发送“粉丝打开”时,控制台会吐出
fans | on
Command Recognized
commandvar isn't valid
非常感谢任何帮助
=========================
额外信息
1)我每隔10毫秒从loop()调用commandline()
2)粉丝命令不是我拥有的唯一命令,只是我必须将它们转换为使用我创建的新命令变量
3)我正在使用Arduino Uno Rev 3
答案 0 :(得分:1)
输出是一个提示:有一个空行。对我说commandvar = "on\n"
因此!= "on"
您可以通过检查字符串的长度来确认这是问题 - 如果它是> 2那里有一些你没想到的特殊人物。如果字符只是空格,那么您可能只需要commandvar.trim()
来获得重要部分(即没有空格)