本程序的目的是:按一次开关(并非是按下开关)开灯,再按一次开关关灯。
本程序一直没有修复的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]
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,可软件消抖,灵敏性较好.可参考(*_*)