四路抢答器代码
时间: 2023-07-02 19:16:02 浏览: 58
以下是一个简单的四路抢答器的代码示例,使用 Arduino UNO 控制器和数字输入输出引脚:
```
int buttonPin1 = 2; // 第一个按钮引脚
int buttonPin2 = 3; // 第二个按钮引脚
int buttonPin3 = 4; // 第三个按钮引脚
int buttonPin4 = 5; // 第四个按钮引脚
int ledPin1 = 6; // 第一个 LED 引脚
int ledPin2 = 7; // 第二个 LED 引脚
int ledPin3 = 8; // 第三个 LED 引脚
int ledPin4 = 9; // 第四个 LED 引脚
void setup() {
pinMode(buttonPin1, INPUT_PULLUP); // 将四个按钮引脚设置为输入,使用上拉电阻
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
pinMode(ledPin1, OUTPUT); // 将四个 LED 引脚设置为输出
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
Serial.begin(9600); // 初始化串口通信
}
void loop() {
if (digitalRead(buttonPin1) == LOW) { // 如果第一个按钮被按下
digitalWrite(ledPin1, HIGH); // 点亮对应的 LED
Serial.println("Player 1 buzzed in!"); // 输出信息到串口
while (digitalRead(buttonPin1) == LOW) { // 等待玩家松开按钮
delay(10);
}
digitalWrite(ledPin1, LOW); // 熄灭对应的 LED
}
if (digitalRead(buttonPin2) == LOW) { // 如果第二个按钮被按下
digitalWrite(ledPin2, HIGH); // 点亮对应的 LED
Serial.println("Player 2 buzzed in!"); // 输出信息到串口
while (digitalRead(buttonPin2) == LOW) { // 等待玩家松开按钮
delay(10);
}
digitalWrite(ledPin2, LOW); // 熄灭对应的 LED
}
if (digitalRead(buttonPin3) == LOW) { // 如果第三个按钮被按下
digitalWrite(ledPin3, HIGH); // 点亮对应的 LED
Serial.println("Player 3 buzzed in!"); // 输出信息到串口
while (digitalRead(buttonPin3) == LOW) { // 等待玩家松开按钮
delay(10);
}
digitalWrite(ledPin3, LOW); // 熄灭对应的 LED
}
if (digitalRead(buttonPin4) == LOW) { // 如果第四个按钮被按下
digitalWrite(ledPin4, HIGH); // 点亮对应的 LED
Serial.println("Player 4 buzzed in!"); // 输出信息到串口
while (digitalRead(buttonPin4) == LOW) { // 等待玩家松开按钮
delay(10);
}
digitalWrite(ledPin4, LOW); // 熄灭对应的 LED
}
}
```
这个代码使用了数字输入输出引脚和上拉电阻来检测四个按钮的状态,并使用 digitalWrite 函数来控制四个 LED 灯的状态。当一个按钮被按下时,对应的 LED 灯会点亮,并输出一条信息到串口。注意,在等待玩家松开按钮的时候,使用了一个简单的 while 循环来等待,这样可以避免遗漏玩家的答案。
阅读全文