Командный ввод Arduino - PullRequest
       19

Командный ввод Arduino

0 голосов
/ 24 ноября 2018

Я работаю над небольшим домашним управлением на основе API.
Я использую Arduino Uno, который должен отвечать на определенные команды, которые я ему даю, через последовательное соединение USB.В настоящее время я пытаюсь ввести команду, которая должна переключать состояние логической переменной.

bool Relay0 = false;

void setup() {

  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);

  Serial.println("Please send START to start the monitor...");
  while(Serial.readString() != "START"){}
  Serial.println("Active.");
}

Этот фрагмент моего кода останавливается до тех пор, пока я не отправлю «START», и он работает просто отлично.Когда я пытаюсь достичь той же функции в моей функции loop(), она просто не работает.

Код выглядит следующим образом:

String command = "HALT";

  void loop() {
    Serial.flush();
    Serial.println("Input command");

    while (command == "HALT"){
     command = Serial.readString();
    }

    if (command == "SwR0") {
      Relay0 = !Relay0;
      OutputData();
      command = "HALT";
    }
    else command = "HALT";
}

Я устанавливаю команду с именем String в HALT, котораядолжен застревать код в цикле, который постоянно читает ввод и прерывается, как только вводится.

Если данная команда окажется командой, которую я настроил, следует вызвать определенные функции, а затемвернитесь к HALT, чтобы дождаться нового пользовательского ввода.Если нет, то он напрямую возвращается в HALT.

...