为什么我的单键 LED 灯控有时只能工作?

问题描述

我刚开始接触 Arduino,我用一个按钮组合了一个非常简单的 LED 控件来改变开和关状态。当我按下按钮时,灯会亮起,但它只会在大约 50% 的时间内保持亮起(所以我必须多次按下它直到它真正保持亮起),并且当我尝试打开它时也会发生同样的事情关闭

我的代码有问题吗?还是可能是线路问题?

 //define variables     

 int ledPin = 5;
 int btnOnPin = 9;
 bool isItOn = false;
 
 void setup() {
  pinMode(ledPin,OUTPUT);
  pinMode(btnOnPin,INPUT_PULLUP);
}

void loop() {
  if(digitalRead(btnOnPin) == LOW)
  {
    if(isItOn == false)
    {
      digitalWrite(ledPin,HIGH);
      isItOn = true;
    }
    else if (isItOn == true)
    {
      digitalWrite(ledPin,LOW);
      isItOn = false;
    }
  }
}

按钮接地和pin9,led接地,pin5通过220ohm电阻。

这应该非常简单,但由于某种原因我无法让它正常工作。

感谢您的帮助

解决方法

尝试在更改 val 后让 arduiton 休眠几毫秒

void loop() {
  if(digitalRead(btnOnPin) == LOW)
  {
    if(isItOn == false)
    {
      digitalWrite(ledPin,HIGH);
      isItOn = true;
    }
    else if (isItOn == true)
    {
      digitalWrite(ledPin,LOW);
      isItOn = false;
    }
    sleep(K);
  }