Arduino简单抢答器DIY
程序员文章站
2022-06-09 11:18:14
...
今天的文章继续玩板子,利用Arduino,DIY一个抢答器,需要的元器件:
Arduino板子;
1k电阻一个;
开关一个;
红色LED一个;
蜂鸣器一个;
面包板;
导线若干;
接线如图所示:
开关单独连接,我们观察开关的按下抬起状态,然后控制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点亮,蜂鸣器按照设置的频率发声。
界限烧写程序,完美运行。