今天的文章继续玩板子,利用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点亮,蜂鸣器按照设置的频率发声。
界限烧写程序,完美运行。