Arduino简单抢答器DIY

今天的文章继续玩板子,利用Arduino,DIY一个抢答器,需要的元器件:

  1. Arduino板子;

  2. 1k电阻一个;

  3. 开关一个;

  4. 红色LED一个;

  5. 蜂鸣器一个;

  6. 面包板;

  7. 导线若干;


接线如图所示:


开关单独连接,我们观察开关的按下抬起状态,然后控制LED点亮,控制蜂鸣器发声。开关接GPIO13,LED和电阻串联接在GPIO12,蜂鸣器接在GPIO11,其他原件引脚全部接地。


接好线,我们开始编写代码,代码如下:


const int SWITCH_INPUT = 12;
const int LED = 11;
const int BEEP = 10;

const int BEEP_FRQ = 500;

void setup() {
  pinMode(SWITCH_INPUT, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
  pinMode(BEEP, OUTPUT);
}

void loop() {
  int pressed = digitalRead(SWITCH_INPUT);
  if (pressed == HIGH) {
    digitalWrite(LED, LOW);
  } else {
    digitalWrite(LED, HIGH);
    digitalWrite(BEEP, HIGH);
    delay(int(1000 / BEEP_FRQ));
    digitalWrite(BEEP, LOW);
  }
}

代码首先定义了使用的引脚,然后定义了蜂鸣器发出响声的频率。


在setup函数中,我们配置了引脚,其中注意开关引脚我们使用了INPUT_PULLUP,也就是默认上拉,避免引脚读入数据出现浮动,也就是说,开关没有按下时,读入的数据为HIGH,开关按下时,读数被拉低为LOW,这是我们检查开关是否按下的依据。


在loop函数中,我们读取开关状态,当没有按下时,LED熄灭,按下时,LED点亮,蜂鸣器按照设置的频率发声。


界限烧写程序,完美运行。

猜你喜欢

转载自blog.csdn.net/yjp19871013/article/details/80204006