手速测试仪
挑战目标
本课目标为制作手速测试仪,使用按键,测试在规定时间内能按下多少次按键,并利用数码管记录时间,micro:bit显示屏显示最终数值。
知识点
- 认识按键和数码管;
- 掌握数码管、按键和拓展板的连接;
- 认识“重复当…”循环语句的使用;
- 掌握手速测试程序的编写。
信息窗
按键
按键采用按压式的开关,属于数字输入模块,按下为高电平输出,释放为低电平输出。
重复当…
位于循环模块中,表示当右边的条件判断为真时重复执行程序。该指令下拉倒三角可以修改为“重复直到”,程序语句和“重复当”相反。
运行时间
位于Microbit模块中,获取开机或复位后的运行时间,单位为毫秒。
硬件连接
找到数码管和按键,将杜邦线插入到按键(VCC D0 GND)针脚上,另一端对应地连接到micro:bit拓展板2(extend bit Ⅱ)1引脚(3V3 D GND)上。用杜邦线接入到数码管左端(GND SCL SDA VCC)针脚上,连接到micro:bit拓展板2(extend bit Ⅱ)I2C接口,对应地接入(GND SCL SDA 3V3)针脚上,如图1-4所示。
编写程序
Step1.现在我们来编写手速测试仪的程序。创建两个变量,一个为记录时间的t,一个为记录分数的s,初始化它们的数值。
Step2.利用系统运行时间来设定变量t的值,并显示在数码管上。由于运行时间为毫秒,而数码管显示为秒,可以让变量除以1000,并进行取整。
Step3.时间是在不断增加的,数码管也要重复显示时间的值,因此要为它们添加重复的指令。时间不是无止境地增加,我们可以给它规定一个时间,比如10秒。利用“重复当…”指令,当时间在10秒内时,重复执行变量t设定为运行时间和数码管显示时间的程序。
Step4.在10秒的时间内,还要重复判断按键是否被按下,如果是,将记录分数的变量s增加1。
tip:按键是属于数字输入模块,具有两种状态——真和假,利用判断按键是否被触发。引脚内的数值可以进行更改,和按键接入拓展板中的针脚进行对应。
Step5.实现按键按下松开记录一个数值,同样地利用空的循环语句截断程序。
Step6.当时间到达10秒后,显示屏上显示变量s的最终数值。
Step7.参考程序如下:连接micro:bit,将程序烧到micro:bit上,并测试程序效果。
训练场
如果要实现数码管从10开始进行倒数,可以怎么设计程序,自己试一试!
拓展挑战
利用数码管和两个按键制作一个抢答器。数码管进行3秒钟倒数,3秒钟后,如果左边的按钮先按下,显示屏显示左箭头,左边胜;如果右边的按钮先按下,显示屏显示右箭头,右边胜。
Tip:两个按键按下有快慢之分,利用两个变量存储不同的运行时间,并进行大小比较,就能判断左边和右边按下的先后顺序。
拓展阅读
数码管
数码管是一种可以显示数字和其他信息的电子设备,由七段发光二极管组成,当某些段点亮而另一些段不亮就可以显示一些字型。要使某些段点点亮,需具备两个条件:共阴极管的公共端接地和共阳极管的公共端接电源;共阴极管的控制端接电源和共阳极管的控制端接地。
数码管常见的为“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,即公共电极。数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。此外,我们可以通过驱动电路,对不同的管脚输入相对的电流,从而驱动数码管的各个段码,使其发亮,显示出时间、日期、温度等所有可用数字表示的参数。
由于它的价格便宜,使用简单,在电器特别是家电领域应用极为广泛,如空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。