Arduino:如果串行输入字符串匹配则继续,否则继续询问用户输入

Arduino: If Serial input string matches then continue otherwise keep asking for user input

我希望能够让用户输入一个字符串并将其与另一个字符串进行比较,如果匹配则程序可以继续,否则它会继续要求输入。 我做了一个匹配字符串的基本输入。

我不确定如何处理要求持续输入的任务。

String defaultPassword = "pass1234";

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Enter password: ");
}

void loop() {
  // put your main code here, to run repeatedly:

  while (Serial.available() > 0) {
    String inputPassword = Serial.readStringUntil('\n');
    inputPassword.trim();

    if (inputPassword == defaultPassword) 
    {
      Serial.print("Correct Input: ");
      Serial.println(inputPassword);
      Serial.println("Initializing...");
    } 
    else if (inputPassword != defaultPassword) 
    {
      Serial.print("Incorrect Input: ");
      Serial.println(inputPassword);
    }
  }
}

I'm not how sure how to approach the task of asking for continuous input.

  • void loop() 方法将在您输入后不断重复,因此您 将通过 while (Serial.available() > 0)
  • 持续检查输入
  • 创建一个 bool 变量并将其用作标志,根据您的密码字符串比较将其值更改为 turefalse,您可以稍后检查该标志来决定是否要求用户输入其他内容或继续。
        bool flag = false;
        if (inputPassword == defaultPassword)
        {
          flag = true;
          Serial.print("Correct Input: ");
          Serial.println(inputPassword);
          Serial.println("Initializing...");
        } 
        else 
        {
          flag = false;
          Serial.print("Incorrect Input: ");
          Serial.println(inputPassword);
          Serial.print("Please enter password again.");
        }
        if(flag)
        {
         //rest of your logic here if user entered the desired input
        }