有没有一种更清洁的方法,可以仅在循环中运行一次操作?

问题描述

我有一个正在接受输入的按钮,当我按下该按钮时,指示灯会切换。

现在,我通常在循环功能中切换一次灯光,这有点混乱。

我不希望它在按住按钮时不断切换。

这是我当前的代码:

bool inboxLightsEnabled = false;

void setup() {

  //Analog pin mode
  pinMode(A0,INPUT);

  //Digital pin mode
  pinMode(2,OUTPUT);
  
}

bool buttonPressRecieved = false;

void loop() {
  
  if(analogRead(A0) >= 1000) {
    if(!buttonPressRecieved) {
      
      //The button has been pressed and not recieved yet so process it
      inboxLightsEnabled = !inboxLightsEnabled;
      
      buttonPressRecieved = true; //We have received the button press so make sure we don't receive it again
      
    }
  } else {
    buttonPressRecieved = false; //The button stopped being pressed so make this false
  }

  digitalWrite(2,inboxLightsEnabled);
  
}

没关系做这种清洁剂是可以的,但是我需要知道是否可以这样做。

我还使用了AnalogRead,因为当我将DigitalRead用作输入时,digitalRead似乎在开和关之间闪烁。

有人知道吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)