#define buzzer 2 //定义buzzer I/O number is 7;
#define KEYO 3 //定义key I/O NUMBER IS 2;
#define KEYT 4 //定义key I/O NUMBER IS 2;
int KEY_NUM = 0; //按键变量赋初值
void BUZZER() {
for (int i = 0; i < 80; i++) { //输出一个频率的声音
digitalWrite(buzzer, HIGH); //发声音
delay(1);//延时1ms
digitalWrite(buzzer, LOW); //不发声音
delay(1);//延时1ms
}
}
void ScanKey() {
KEY_NUM = 0;
if (digitalRead(KEYO) == LOW) //有按键按下
{ delay(80);
if (digitalRead(KEYO) == LOW) {
KEY_NUM = 1; //变量设置为1
while (digitalRead(KEYO) == LOW); //等待按键松手
}
}
if (digitalRead(KEYT) == LOW) //有按键按下
{ delay(80);
if (digitalRead(KEYT) == LOW) {
KEY_NUM = 1; //变量设置为1
while (digitalRead(KEYT) == LOW); //等待按键松手
}
}
if (KEY_NUM == 1)
BUZZER();
}
void setup()
{
pinMode(KEYO, INPUT_PULLUP); //定义keyI/O is INPUT_PULLUP
pinMode(KEYT, INPUT_PULLUP); //定义keyI/O is INPUT_PULLUP
pinMode(buzzer, OUTPUT); //定义buzzer I/O is OUTPUT
Serial.begin(300);
}
void loop()
{
ScanKey(); //按键扫描程序,当按键按下时,该子程序会修改key-num的值
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
bz1:1
bz1:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r