首页 > 解决方案 > 真/假开关切换回零

问题描述

所以我尝试制作一个脚本,在真假之间切换布尔值。出于某种原因,每次我按下连接按钮时,布尔值都会变为 1,但随后立即变回 0

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

  } 

标签: carduinoarduino-unoarduino-ide

解决方案


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

  } 

推荐阅读