首页 > 解决方案 > Arduino:如果串行输入字符串匹配,则继续,否则继续询问用户输入

问题描述

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

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

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);
    }
  }
}

标签: arduino

解决方案


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

  • 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
        }

推荐阅读