我如何在 Arduino 中使用串行监视器给出像我的名字这样的词,"DASH" 并且只让 LED 闪烁?

How do I use Serial Monitor in Arduino to give word like my name, "DASH" and only that to blink an LED?

所以,我手头有一个任务,那就是使用一个词,比如我的名字“DASH”作为 Arduino 串行监视器的输入,这样 ESP32-WROOM-32 中的 LED 就会闪烁,否则,它惯于。我是 Arduino 方面的新手,非常感谢任何指导,即使信息可能很少,请随意。

我使用的是 ESP32-WROOM-32 模块,没有外部 LED,模块本身会闪烁蓝色。

这是我尝试过的方法:

String incomingString;
int LED_BUILTIN=2;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {
  if (Serial.available()>0)
  {
    String incomingString=Serial.readString();
    Serial.println("Enter 'Dhaval' to blink thy LED in hue of blue!");
    if (incomingString=="Dhaval"){
      Serial.println("You have entered 'Dhaval', needless to say enjoy the beautiful baby blue LED.");
      digitalWrite(LED_BUILTIN, HIGH);
    }
    else
    {
      Serial.println("Seems that you've entered anything else but Dhaval, please just enter 'Dhaval'.");
      
    }
    
  }

}

我知道在这段代码中最好使用 for 循环和 if 条件让它一次获取每个字符一次,但不确定如何实现,而且我觉得它可能只需使用这个定义的字符串,当我开始阅读关于我输入的内容的条目并使用 Serial.print 命令打印它时,它显示完全相同的字符串。

我还考虑过使用上面提到的循环,每轮给它们输入参数作为 ASCII 值并确认它,然后让最终输出说出整个单词 DASH,并且只有在验证时才让 LED眨眼

提前致谢。

因此,在仔细阅读和了解有关 Arduino 和串口监视器的更多信息后,我准备好说问题不是代码,事实上它很好。

问题出在我和显示输出选项的串口监视器上。它应该是“没有换行符”,在我的例子中它一直是“换行符”,这使得用户输入的字符串向输入的字符串添加新行,增加了字符串的长度。

这是代码,鉴于串行监视器输出的设置已更改为“无行结束”,它工作得很好:

#include

String s1;
String s2("Dhaval");
int LED_BUILTIN=2;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);

}

void loop() {
  if (Serial.available()>0)
  {
    String s1=Serial.readString();
    Serial.println("Enter 'Dhaval' to blink thy LED in hue of blue!");
    Serial.println(s1);
    if (s1.equals(s2)){
      Serial.println("You have entered 'Dhaval', needless to say enjoy the beautiful baby blue LED.");
      digitalWrite(LED_BUILTIN, HIGH);
      delay(500);
      digitalWrite(LED_BUILTIN, LOW);
      delay(1000);
    }
    else
    {
      Serial.println("Seems that you've entered anything else but Dhaval, please just enter 'Dhaval'.");
      
    }
    
  }

}

希望有一天能对某人有所帮助。如果你想使用“换行符”,那么输入的字符串将比原来的意图多出一些长度,在这种情况下,你可以通过字符串的 .trim 函数 trim 字符串。没问题。