好聲音搶答器,按下按鍵燈亮且長時間不滅,有蜂鳴器提示音
代碼
int redled = 12; //紅色LED 輸出
int yellowled = 11; //黃色LED輸出
int greenled = 10; //綠色LED輸出
int redpin = 5; //紅色按鍵引腳
int yellowpin = 4; //黃色按鍵引腳
int greenpin = 3; //綠色按鍵引腳
int Buzzer=7;
int restpin = 2; //復位按鍵引腳定義
int red;
int yellow;
int green;
int redpin_MUN=0;
int greenpin_MUN=0;
int yellowpin_MUN=0;
void setup() {
pinMode(redled, OUTPUT);
pinMode(yellowled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(redpin, INPUT);
pinMode(yellowpin, INPUT);
pinMode(greenpin, INPUT);
digitalWrite(Buzzer,LOW);
}
void loop() //按鍵回圈掃描。
{
red = digitalRead(redpin);
if (red == LOW)
{
digitalWrite(redled,LOW);
}
else
{
digitalWrite(redled,HIGH);
ScanKey2();
}
yellow = digitalRead(yellowpin);
if(yellow == LOW)
{
digitalWrite(yellowled ,LOW);
}
else
{
digitalWrite(yellowled ,HIGH);
ScanKey1();
}
green = digitalRead(greenpin);
if(green == LOW)
{
digitalWrite(greenled,LOW);
}
else
{
digitalWrite( greenled ,HIGH);
ScanKey3();
}
}
void ScanKey1()
{
greenpin_MUN = 0;
if(digitalRead(greenpin) == LOW)
{
//延時去抖動
if(digitalRead(greenpin) == LOW)
{
BuzzerDi(); //滴一聲
greenpin_MUN = 1; //設定鍵值
while(digitalRead(greenpin) == LOW); //松手檢測
}
}
}
void ScanKey2()
{
yellowpin_MUN = 0;
if(digitalRead(yellowpin) == LOW)
{
//延時去抖動
if(digitalRead(yellowpin) == LOW)
{
BuzzerDi(); //滴一聲
yellowpin_MUN= 1; //設定鍵值
while(digitalRead(yellowpin) == LOW); //松手檢測
}
}
}
void ScanKey3()
{
redpin_MUN = 0;
if(digitalRead(redpin) == LOW)
{
//延時去抖動
if(digitalRead(redpin) == LOW)
{
BuzzerDi(); //滴一聲
redpin_MUN = 1;
while(digitalRead(redpin) == LOW); //松手檢測
}
}
}
void BuzzerDi()
{unsigned char i;
digitalWrite(Buzzer,HIGH);
delay(100);
digitalWrite(Buzzer,LOW);
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/130311.html
標籤:非技術區
上一篇:求分享好的復雜表格的報表嗎?
