用arduino制作一个简易抢答器

大家可以 

照我上面连线。


当按下一个键时亮一个灯,按复位键熄灭


int redled=8;

int yellowled=7;
int greenled=6;
int redpin=5;
int yellowpin=4;
int greenpin=3;
int restpin=2;
int red;
int yellow;
int green;
void setup()
{
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(greenled,OUTPUT);
pinMode(redpin,INPUT);
pinMode(yellowpin,INPUT);
pinMode(greenpin,INPUT);
}
void loop()
{
red=digitalRead(redpin);
yellow=digitalRead(yellowpin);
green=digitalRead(greenpin);
if(red==LOW)RED_YES();
if(yellow==LOW)YELLOW_YES();
if(green==LOW)GREEN_YES();
}


void RED_YES()
{
  while(digitalRead(restpin)==1)
  {
   digitalWrite(redled,HIGH);
   digitalWrite(greenled,LOW);
   digitalWrite(yellowled,LOW);
  }
  clear_led();
}
void YELLOW_YES()
{
  while(digitalRead(restpin)==1)
  {
  digitalWrite(redled,LOW);
  digitalWrite(greenled,LOW);
  digitalWrite(yellowled,HIGH);
  }
  clear_led();
}
void GREEN_YES()
{
  while(digitalRead(restpin)==1)
  {
  digitalWrite(redled,LOW);
  digitalWrite(greenled,HIGH);
  digitalWrite(yellowled,LOW);
  }
  clear_led();
}
void clear_led()
{
  digitalWrite(redled,LOW);
  digitalWrite(greenled,LOW);
  digitalWrite(yellowled,LOW);
}
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,我可以回答这个问题。以下是一个简单的 Arduino 代码,用于控制三路数码管抢答: ``` #include <TM1637.h> // 定义数码管引脚 #define CLK 2 #define DIO 3 // 定义抢答按钮引脚 #define BUTTON1 4 #define BUTTON2 5 #define BUTTON3 6 // 定义数码管对象 TM1637 tm1637(CLK, DIO); // 定义抢答按钮状态 bool button1Pressed = false; bool button2Pressed = false; bool button3Pressed = false; void setup() { // 初始化数码管 tm1637.init(); tm1637.setBrightness(7); // 初始化抢答按钮 pinMode(BUTTON1, INPUT_PULLUP); pinMode(BUTTON2, INPUT_PULLUP); pinMode(BUTTON3, INPUT_PULLUP); } void loop() { // 检测按钮状态 if (digitalRead(BUTTON1) == LOW && !button1Pressed) { button1Pressed = true; displayWinner(1); } if (digitalRead(BUTTON2) == LOW && !button2Pressed) { button2Pressed = true; displayWinner(2); } if (digitalRead(BUTTON3) == LOW && !button3Pressed) { button3Pressed = true; displayWinner(3); } } void displayWinner(int winner) { // 显示获胜者编号 tm1637.displayNum(winner); // 等待一段时间后清空数码管 delay(200); tm1637.clear(); // 重置按钮状态 button1Pressed = false; button2Pressed = false; button3Pressed = false; } ``` 这个代码使用了 TM1637 库来控制数码管显示,同时使用了 INPUT_PULLUP 模式来检测按钮状态。当有一个按钮被按下时,程序会显示获胜者的编号,并等待一段时间后清空数码管,然后重置按钮状态,以便下一轮抢答

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值