Arduino项目——三路抢答器的设计

1. 抢答器简介  

        抢答器是通过设计电路,以实现如字面上意思的能准确判断出抢答者的电器。在知识竞赛、文体娱乐活动(抢答赛活动)中,能准确、公正、直观地判断出抢答者的座位号。更好的促进各个团体的竞争意识,让选手门体验到战场般的压力感。

      很多人制作的抢答器只是大概判断出抢答的选手,如果遇到选手之间几乎同时抢答的情况,则无法判断先后。会使得准确性、公平性大打折扣。

        完成本实验要用到的元件如下:灯的实验扩展成3 个按键对应3 个小灯,占用6 个数字I/O 接口。

2. 硬件准备

元件名称数量
按键开关3
LED3
220Ω电阻3
1kΩ电阻3

3. 设计原理

        按键没有按下时,按键对应的引脚处于悬空状态,此时电平悬空。采用下拉电阻的方式让按键未被按下时的电平处于低电平。当按下按键时,电阻处于高电平,选手所对应的灯亮起,蜂鸣器发声。同时向串口发送所在位置的信息。判断选手按下按键的先后。

4. 代码和仿真结果

int beep=2;

int ledA=8;
int ledB=9;
int ledC=10;

int buttonA=3;
int buttonB=4;
int buttonC=5;

void setup(){
  Serial.begin(9600);
  pinMode(beep,OUTPUT);
  pinMode(ledA,OUTPUT);
  pinMode(ledB,OUTPUT);
  pinMode(ledC,OUTPUT);
          //设置电阻为上拉模式,当电平嵌入在高电平
  pinMode(buttonA,INPUT_PULLUP);
  pinMode(buttonB,INPUT_PULLUP);
  pinMode(buttonC,INPUT_PULLUP);
}

void loop(){
  if(digitalRead(buttonA)==0){    //判断开关A的状态是为低电平
    digitalWrite(ledA,HIGH);
    //digitalWrite(beep,HIGH);
    tone(beep,700,10);     
        //使用频率为700的波驱动蜂鸣器,持续发生10微秒                              
    //delay(1);
    Serial.println("A");
  }
  else{
    digitalWrite(beep,LOW);
    delay(1);
  }
  
  
  if(digitalRead(buttonB)==0){         //判断开关B的状态是为低电平
    digitalWrite(ledB,HIGH);
    //digitalWrite(beep,HIGH);
    tone(beep,700,10);
    //delay(1);
    Serial.println("B");
  }
  else{
    digitalWrite(beep,LOW);
    delay(1);
  }
    
  if(digitalRead(buttonC)==0){         //判断开关C的状态是为低电平
    digitalWrite(ledC,HIGH);
    //digitalWrite(beep,HIGH);
    tone(beep,700,10);
    //delay(1);
    Serial.println("C");
  }
  else{
    digitalWrite(beep,LOW);
    delay(1);
  }
  
  delay(20);
  digitalWrite(ledA,LOW);
  digitalWrite(ledB,LOW);
  digitalWrite(ledC,LOW);
}
图1 电路连线图

  • 11
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群智能算法小狂人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值