本程序的目的是:按一次开关(并非是按下开关)开灯,再按一次开关关灯。

本程序一直没有修复的bug:长按后不一定开灯或关灯,只有短按才行。

元器件:

黄帽开关1个,蓝色LED灯1个,220欧姆电阻2个,面包版1片,面包线若干。

连线图:

程序:

[cc lang=”java”]

int ledpin=10;
int buttonpin=7;
int val=0;
bool state=0;

void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
pinMode(buttonpin,INPUT);
}

void loop()
{
val=digitalRead(buttonpin);
if(val==LOW)
{
Serial.println(“”);
Serial.println(“Pressed Down!”);
Serial.print(“Button Value= “);
Serial.println(val);
delay(200);
state=!state;
Serial.print(“State Value= “);
Serial.println(state);
}

if(val==HIGH)
{
if(state==1)
{
digitalWrite(ledpin,HIGH);
//Serial.println(“Your light should be ON “);
}
else
{
digitalWrite(ledpin,LOW);
//Serial.println(“Your light should be OFF “);
}
}
}

[/cc]

一条评论

  1. int LED=7;
    int button=8;
    int n=0;
    void setup()
    {
    pinMode(LED,OUTPUT);
    pinMode(button,INPUT);
    }
    void loop()
    {
    do{}while(digitalRead(button)==LOW);
    delay(250);
    n=n+1;
    if(n%2==1)
    {
    digitalWrite(LED,HIGH);
    }
    else
    {
    digitalWrite(LED,LOW);
    }
    }

    注: 以上代码可实现开关LED,可软件消抖,灵敏性较好.可参考(*_*)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注