Переключатель истина / ложь переключается обратно на ноль - PullRequest
0 голосов
/ 01 апреля 2020

Итак, я попытался создать скрипт, который переключает значение логического значения между true и false. По какой-то причине каждый раз, когда я нажимаю подключенную кнопку, логическое значение становится равным единице, но затем сразу возвращается к нулю

bool on = false;

if(digitalRead(inputOn) == HIGH && on == false){
     on = true; 
     digitalWrite(outputLedGreen6, HIGH);
     Serial.print("OnStatus");
     Serial.println(on);
     delay(500);

  } else if(digitalRead(inputOn) == HIGH){
    on = false;
    digitalWrite(outputLedGreen6, LOW);
    Serial.print("OnStatus");
    Serial.println(on);
    delay(500);

  } 

1 Ответ

2 голосов
/ 01 апреля 2020
bool on = false;

if(digitalRead(inputOn) == HIGH && on == false){
     on = true; 
     digitalWrite(outputLedGreen6, HIGH);
     Serial.print("OnStatus");
     Serial.println(on);
     delay(500);

  } 
  else if(digitalRead(inputOn) == HIGH ){ //CHANGE THIS LINE HERE
  //In the question, there was no else statement. Only 2 ifs. So whenever the first if statement executed, the second would also execute.

    on = false;
    digitalWrite(outputLedGreen6, LOW);
    Serial.print("OnStatus");
    Serial.println(on);
    delay(500);

  } 
...