新手求救 抢答器实验疑问
int R=8;int G=7;
int i;
int j=0;
void buzzer()
{
for(i=0;i<80;i++)
{
digitalWrite(5,HIGH);
delay(20);
digitalWrite(5,LOW);
delay(20);
}
}
void key_scan()
{
int key_1,key_2,key_3;
key_1=analogRead(1);
key_2=analogRead(2);
key_3=analogRead(3);
if(key_1<1000&&key_2<1000&&key_3<1000)
{ return;}
if(key_1>1000)
{
delay(10);
if(key_1>1000)
{
buzzer();
digitalWrite(R,HIGH);
digitalWrite(G,LOW);
}
else
{
return;
}
}
if(key_2>1000)
{
delay(10);
if(key_2>1000)
{
buzzer();
digitalWrite(R,LOW);
digitalWrite(G,HIGH);
}
else
{
return;
}
if(key_3>818)
{
delay(10);
if(key_3>1000)
{
buzzer();
digitalWrite(R,LOW);
digitalWrite(G,LOW); }
else{
return;
}
}
}
}
void setup()
{
for(i=5;i<=8;i++)
{
pinMode(i,OUTPUT);
}
}
void loop()
{
while(1)
{
key_scan();
}
}
程序中R是红的,G是绿灯。delay是用来延时,躲避抖动干扰的。按第三个键的时候,就是最后按那个,理应是两个灯都熄灭的,但是却红灯亮啦!接线我检查过,没问题。
求问那是为什么????第三个键啊~!!!!!!:'(:'(:'(:'(:'(:'( 按键IO口要使用输入模式,使用digitalRead读IO。 本帖最后由 kenneth22 于 2013-8-6 16:44 编辑
pathletboy 发表于 2013-8-6 16:28 static/image/common/back.gif
按键IO口要使用输入模式,使用digitalRead读IO。
按键那我插去模拟口,所以用模拟口读没问题 你把key1 key2的点灯都去了,开始运行时候都点亮,再按key3,看看情况。 pathletboy 发表于 2013-8-6 16:47 static/image/common/back.gif
你把key1 key2的点灯都去了,开始运行时候都点亮,再按key3,看看情况。
按key3之后,两个灯还亮................................................................
页:
[1]