arduino 抢答器

抢答器功能:

1.最先按下的按钮,相应的灯会一直点亮。

2.当已经有灯正在亮时,按下别的按钮,不会再亮其他灯。

3.按下复位按钮,熄灭全部灯,并且重新开始抢答。

接线

源代码

int led_red = 12;
int led_yellow = 11;
int led_gerrn = 10;
int button_red = 5;
int button_yellow = 4;
int button_green = 3;
int button_rest = 2;
int red;  //储存红灯按钮的状态
int yellow;  //储存黄灯按钮的状态
int green;  //储存绿灯按钮的状态



void setup() {
  pinMode(led_red, OUTPUT);
  pinMode(led_yellow, OUTPUT);
  pinMode(led_gerrn, OUTPUT);
  pinMode(button_red, INPUT);
  pinMode(button_yellow, INPUT);
  pinMode(button_green, INPUT);
  pinMode(button_rest, INPUT);
  Serial.begin(9600);
}

void loop() {
  red = digitalRead(button_red);
  green = digitalRead(button_green);
  yellow = digitalRead(button_yellow);
  if (red == LOW)  //按下控制红灯的按钮时,执行RED函数,点亮红灯
  {
    RED();
  }
  if (green == LOW)  //按下控制绿灯的按钮时,执行GREEN函数,点亮绿灯
  {
    GREEN();
  }
  if (yellow == LOW)  //按下控制黄灯的按钮时,执行YELLOW函数,点亮黄灯
  {
    YELLOW();
  }
}

void RED()  
{
  while (digitalRead(button_rest) == 1) //当复位按钮button_rest的状态为1时,一直点亮红灯
  {
    digitalWrite(led_red, HIGH);
    digitalWrite(led_yellow, LOW);
    digitalWrite(led_gerrn, LOW);
  }
  clear_led();  //按下复位按钮button_rest时,执行clear_led函数,熄灭三个灯
}

void YELLOW()
{
  while (digitalRead(button_rest) == 1)  //当复位按钮button_rest的状态为1时,一直点亮黄灯
  {
    digitalWrite(led_red, LOW);
    digitalWrite(led_yellow, HIGH);
    digitalWrite(led_gerrn, LOW);
  }
  clear_led();  //按下复位按钮button_rest时,执行clear_led函数,熄灭三个灯
}

void GREEN()
{
  while (digitalRead(button_rest) == 1)  //当复位按钮button_rest的状态为1时,一直点亮绿灯
  {
    digitalWrite(led_red, LOW);
    digitalWrite(led_yellow, LOW);
    digitalWrite(led_gerrn, HIGH);
  }
  clear_led();  //按下复位按钮button_rest时,执行clear_led函数,熄灭三个灯
}

void clear_led()  //熄灭三个灯的函数
{
  digitalWrite(led_red, LOW);
  digitalWrite(led_yellow, LOW);
  digitalWrite(led_gerrn, LOW);
}

实践效果

arduino抢答器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值