按钮升级(按一下按钮,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.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐