电子骰子2.0
上篇文章介绍了利用数码管制作一款简单的电子骰子,使其能够随机显示4以内的自然数,但是缺乏互动功能。借助数字震动传感器,可以模拟六面骰掷骰子的效果。当摇晃数字震动传感器时,数码管会动态显示6以内的随机数,停止摇晃后,数码管便会一直显示最近产生的一个随机数。
学习目标
了解中断的概念,掌握数字震动传感器的使用方法;
器材清单
Romeo、USB数据线、共阴极数码管、数字震动传感器
实验现象
摇晃数字震动传感器,使数码管动态显示1~6中的一个自然数;停止摇晃后,显示最后产生的一个随机数字。
知识点
数字震动传感器
传感器是一种能感受光、温度和湿度等外界信息的检测装置,并能将感受到的信息,按照一定的规律转换成可用信号,以实现信息的接收与转换。传感器一般由敏感元件、转换元件和转换电路三部分组成,通过敏感元件获取外界信息并转换成电信号,然后由控制器进行分析处理。
按信号类型进行分类,传感器一般可分为数字传感器和模拟传感器(模拟传感器是一种能够将感受到的信息转化为模拟信号的装置,例如光线传感器、声音传感器、温度传感器等)。数字传感器是一种能够将感受到的信息转化为数字信号(高电平或低电平)的装置。
数字震动传感器是一种能够感知震动的装置。如下图所示,数字震动传感器模块有黑、红、绿三根线,使用时需要将数字震动传感器按照对应的颜色与Romeo的数字针脚连接。通过模块上的大写D(Digital的缩写)可知这是一款数字传感器,通过震动标识辨别出这是一款震动传感器。数字震动传感器在静止时为断开状态(即内部电路处于未闭合);当它震动时,内部电路便会瞬间变为导通状态。数字震动传感器可以广泛应用于需要根据外界震动状态决定电路开关的场所。
中断
在处理器中,所谓中断,是一个过程,如下图所示,即CPU在正在执行程序过程中,遇到外部/内部紧急事件需要处理,暂时中止当前程序执行转而去为事件服务,待服务完毕,再返回到暂停处(断点)继续执行原来的程序。为事件服务的程序称之为中断服务程序或中断处理程序。
Mind+中数字震动传感器模块就是以中断的形式处理。定义一个变量n,假如将数字震动传感器连接到数字针脚3,当数字震动传感器震动时,触发中断,进入中断程序,此处中断程序为“设置变量n的值为1”。程序如下图。
在主程序中,就可以根据n的值来判断数字震动传感器是否震动。程序如下图。
实现过程
(一)传感器、数码管与Romeo的连接
准备器材,将数字震动传感器模块和数码管模块与Romeo的数字针脚连接起来,如下图所示。
(二)编写程序
假如用数字针脚3控制数字震动传感器来实现“电子骰子2.0”的程序,参考程序如下图所示。
(三)测试效果
上传程序,观察数码管的效果是否符合预期,测试并调整。
拓展提升
假如车辆发生碰撞时危险信号灯会自动亮起来,可以利用数字震动传感器和LED制作震动报警灯吗?当震动发生时,实现LED信号灯亮起来。
评论