按钮升级(按一下按钮,LED亮,再按一下,LED熄灭)
一、成果展示
二、实现方法与解析
首先,让我们按图连接电路:
代码如下
int button = 2;
int led = 13;
boolean change = false; //通过按钮来改变change的值
void setup()
{
pinMode(button, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop()
{
while( digitalRead(button) == HIGH ){}
/*用来暂停程序,保持led的当前状态,按一下按钮退出循环。*/
if( change == true )
{
digitalWrite(led, LOW);
change = !change;
}
else
{
digitalWrite(led, HIGH);
change = !change;
}
delay(600) ;
/*这一步至关重要,如果没有delay来延迟一段时间的话,按钮会失灵,
因为loop循环得很快,你在按下按钮的瞬间,程序首先会退出while循环,
然后执行了很多次loop里的程序,所以在你松开按钮时我们不确定loop
运行的循环是亮着的LED还是熄灭的LED*/
}
OK,that’s over.