|
|
[media=x,500,375][/media]- 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是用来延时,躲避抖动干扰的。按第三个键的时候,就是最后按那个,理应是两个灯都熄灭的,但是却红灯亮啦!接线我检查过,没问题。
|
|