第三章第1课 科创板-按键驱动
1、了解按键的工作原理;
2、掌握驱动板载按键的方法;
3、通过编程实现按键驱动板载多彩LED灯工作。
1
按键——Science
按键是一种电子开关,按下时开关会闭合接通,当撤销压力时开关立刻断开,它是靠感受金属弹片受力变化来实现通断的。在电子电路中,常作为一种触发事件来使用,常见的触发方式有:按键的状态(按键按下、按键松开),按键的变化(按键由按下变为松开、按键由松开变为按下),更加复杂的触发方式例如按键长按3秒、5秒,按键连续按几次如鼠标的双击等。
无声按键展示图
二、按键工作原理——Engineering and Technology
科创板板载无声按键
STEAM百科
按键控制原理
按键的状态监测:根据按键对应管脚的电平来检测按键的状态,在数字电路中,二进制只有0和1,常见的正逻辑即高电平为“1”,低电平为“0”。科创板按键对应的电平关系如下表(其中按键左的逻辑与其他按键的逻辑是相反的):
按键上 | 按键下 | 按键左 | 按键右 | 确认键 | 返回键 | |
按下 | 1 | 1 | 0 | 1 | 1 | 1 |
松开 | 0 | 0 | 1 | 0 | 0 | 0 |
按键抖动原理
在按键的操作中,可能会出现按键抖动,这是由按键的机械特性决定的,抖动的时间一般为5ms~10ms。这是一个很重要的时间参数,按键抖动会引起一次按键按动被误读多次,我们一般在程序里面加延时模块去除按键抖动的影响。
三、试验与科学——Technology and Math
1、驱动板载按键
科创板板载无声按键共有六个,每个按键对应的管脚如下:
按键上 | 按键下 | 按键左 | 按键右 | 确认键 | 返回键 | |
科创板管脚 | 12 | 23 | 36 | 2 | 16 | 19 |
认识“获取数字输入的值”代码块
“获取数字输入的值”代码块位于“输入/输出”模块分类中,其作用是获取指定管脚的数字输入值。
认识“等式\不等式”代码块
“等式\不等式”代码块位于“逻辑”模块分类中,包含多种关系符号,如下图所示。
当两个结果,能够满足相应判定条件的时候,就返回“真”,反之,则返回“假”。
刚才我们已经学过,高电平为“1”,低电平为“0”。因此我们可以用表示按键上按下,另外在逻辑判断中“1”又为可判断为“真”,“0”判断为“假”,因此按键上按下还可以表示为,或者直接用也可以。
认识“如果…执行…”代码块
“如果…执行…”代码块位于“控制”模块中,它会判断相关条件,如果值为“真”,会执行下属框中的相应程序。
因为按键上与绿色LED灯对应管脚号同为12,所以我们先用按键右来测试按键驱动(按键是输入部分,所以初始化的时候要改为“数字输入”)。
将上面的程序下载到科创板后,按下按键右,板载红色LED灯点亮1秒后熄灭。
2、板机互动
认识“打印(自动换行)”代码块
“打印(自动换行)”代码块位于“串口”模块中,它的作用是打印指定的文字、数字或其他值,并在结尾自动换行。
认识“非”代码块
“非”代码块位于“逻辑”模块中,它的作用是判断其后的输入结果,如果输入结果为假,则返回值为真;如果输入结果为真,则返回值为假。
接下来,我们以按键上、下、左、右四个按键为例,编写利用这四个按键实现板机互动的程序:
因为按键左的逻辑与正常逻辑是反的,所以运用“非”代码块对其进行取反,这样测得的值就是正常的逻辑值了。将上面的程序下载到科创板,并按下相应的按键,就会在信息窗口看到相对应的信息了。
3、按键控制LED灯亮度
接下来我们用按键和pwm来实现按键控制灯的亮度,每一次按右键,红色灯亮度逐次增加,共有0到4四个亮度级别。
在这里我们会用到“如果…执行…”代码块的拓展功能,单击上方的蓝色齿轮,会弹出。将“否则如果”块拖入弹出窗口的“如果”中,可得到“如果-否则如果”程序块;再次单击蓝色齿轮,可关闭窗口,出现。
“如果-否则如果”代码块有四个接口,“如果”接口插入判断条件为“真”,运行“执行”接口中的程序;“如果”接口插入判断条件为“假”,判断“否则如果”接口中的条件,“否则如果”接口判断条件为“真”,运行“执行”否则如果接口中的程序。
按键右控制绿色LED灯亮度的程序:
将程序下载到科创板,打开开关会发现只有电源灯亮,如图一;现在我们点击右键会发现四角四个灯会有微弱亮,如图二;再点击右键,会发现灯更亮了一些,如图三;最后再点击一下右键,会发现等变得更亮了,如图四;当第五次点击右键的时候,绿色LED灯就会熄灭;之后点击右键会重复上面的过程。
图一 图二 图三 图四
四、延伸与扩展——Arts
想一想,能不能用按键控制蜂鸣器弹奏一首好听的音乐呢,怎样去实现?
请以小组的形式进行合作,尝试使用按键控制蜂鸣器,弹奏一首好听的音乐。
设计要求:
(能够用按键控制蜂鸣器弹奏一首音乐;
(保证控制方式安全可靠。