先上电路图
再上代码 (菜鸟写代码, 如果你有更好写法请指出)
int BUTTON=3; //按键引脚
int LEDPIN=13; //LED灯引脚
void setup()
{
pinMode(BUTTON,INPUT); //按键引脚为输入状态
pinMode(LEDPIN,OUTPUT); //LED灯引脚为输出状态
}
void loop()
{
if (digitalRead(BUTTON)) //如果按键被按下,过程会产生抖动
{
delay(10); //消抖
if (digitalRead(BUTTON)) //消抖之后按键还是按下状态,证实按键已正式按下
{
digitalWrite(LEDPIN,!digitalRead(LEDPIN)); //取LED的状态,然后把LED的状态置反
delay(10); //假如按键这个时候按键被放开,可起到消抖作用(实际不知道有没作用)
while (digitalRead(BUTTON)) //如果按键一直在按住,就什么都不做
{
//不加延迟命令,节省CPU资源
}
}
}
}