问题描述
我刚开始接触 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);
}