|
本帖最后由 EthanWain 于 2012-11-14 20:27 编辑
本人新手,今天刚拿到arduino,想做一个按一下微控开关,led亮,再按一下led灭的实验,代码如下写入后,有时按几下按钮led才会有反应,请问是怎么回事。
void setup ()
{
pinMode(4,INPUT);
pinMode(13,OUTPUT);
}
void loop()
{
int i = digitalRead(4);
int n = digitalRead(13);
if (i==HIGH&&n==LOW)
{
digitalWrite(13,HIGH);
}
else if (i==HIGH&&n==HIGH)
{
digitalWrite(13,LOW);
}
}
补充,用了串口监视器才发现我按下按钮的时候貌似执行了很多次开关命令。。。
原来是需要软件消抖,下面是重新修改后的代码
[mw_shl_code=c,true]void setup ()
{
pinMode(2,INPUT);
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop ()
{
if (digitalRead(2)==HIGH&&digitalRead(13)==LOW)
{
digitalWrite(13,HIGH);
Serial.print("Turn on the LED");
while (digitalRead(2)==HIGH)
{
delay(1);
}
}
else if (digitalRead(2)==HIGH&&digitalRead(13)==HIGH)
{
digitalWrite(13,LOW);
Serial.print("Turn off the LED");
while (digitalRead(2)==HIGH)
{
delay(1);
}
}
}[/mw_shl_code]
|
|