2202浏览
查看: 2202|回复: 2

第11课 电子时钟

[复制链接]
11.电子时钟
星火课程团队




欢迎来到树莓派课堂。这节课我们尝试用数码管来制作电子时钟。
知识点:
认识数码管
取整取余数学运算
所需硬件:
树莓派主板  古德微扩展板  数码管
1.认识数码管
第11课 电子时钟图1
首先我们来认识一下今天的主角——数码管,它其实是显示屏中的一类,通过对其不同管脚输入相对的电流而发亮,从而用数字来显示时间、距离、日期、温度等所有可用数字表示的参数。因价格便宜、使用简单,在电器特别是家电领域广泛应用。
第11课 电子时钟图2

仔细观察数码管,我们发现它是由四个看起来像8的数字组成,而每个“8”字又是由七个LED构成,右下角用于显示小数点的DP也是一个发光二极管单元。
第11课 电子时钟图3
      
我们把数码管上的数字按从左向右的顺序依次称之为0号数码管、1号数码管、2号数码管和3号数码管。小数点也标注上序号。咦?第一个点怎么没有序号?是不是标错了?不是的,图中的标注完全正确。因为我们使用的四位数码管比较特殊,它与普通的四位数码管略有区别。
第11课 电子时钟图4
你看,这种型号的数码管,每个位数的右下角都有一个可以点亮的“点”。而我们用的数码管将最左边的“点”移动到了1号点位置。所以,最左边的点看看可以,但实际上是不能被点亮的。
刚刚我们说数码管是由LED组成,那么它的内部又是怎样的呢?一起来看一下数码管的电路图。
第11课 电子时钟图5
从图中我们可以看到,每一个号段的数码管都是由7段灯管和右下角的小LED灯组成。这样的数码管我们习惯称之为八段管。若有人把数码管叫成七段管,那必定是数码管中不包含右下角的LED灯。一个八段管8根正极加一根负极合起来需要9根杜邦线,像这样的四位数码管岂不需要36根?如果数码管真的留有这么多针脚那还真的是太麻烦了,因此经过后期电路设计,在保证显示效果的前提下,数码管只留有4个针脚。那么数码管的这四个针脚要怎么连接到扩展板上呢?
第11课 电子时钟图6
2.硬件连接
第11课 电子时钟图7

3.数码管显示数字
数码管连接好了,我们首先让数码管显示一组有意义的数字1573。你能猜到这组数字表示什么意思吗?对,一往情深。这里我希望你能对我们的树莓派课程一往情深,让树莓派的强大功能改变你我的生活。
打开古德微平台,在“智能硬件”模块中找到数码管。通过字面意思,我们可以猜到每块积木的作用。把鼠标指针放在积木上,还可以看到有关这个积木功能的详细介绍。
第11课 电子时钟图8

我们在使用数码管前,首先需要关闭所有的数码管,否则容易出错。将参数分别改为0123.
第11课 电子时钟图9
接下来我们为数码管设置亮度,亮度值在1-7之间,数值越大亮度就越亮,这里我们使用默认值1就可以了。在这里有一个热别有意思的地方,由于我们使用的数码管的物理因素,即使我们将每一个编号的数码管都设置成不同的亮度,但所有编号的数码管最终也只会统一显示最后设置的亮度。
第11课 电子时钟图10
之后我们使用这块积木让数码管显示内容。
第11课 电子时钟图11
这块积木有三个参数,第一个表示数码管的代号,第二是是数码管显示的内容,第三个是否显示对应位数小数点,输入0 不显示小数点,输入1显示小数点。由于我们这里不需要显示小数点,输入0即可。我们把积木复制依次更改显示内容。
第11课 电子时钟图12
上传程序,看下效果。
第11课 电子时钟图13
4.数码管显示时间
数码管显示数字非常简单,那么若想让数码管显示时间,又该如何更改程序呢?前面我们提到冒号灯管的代号是1。所以,只需要1号数码管积木上的显示点的参数改为1就可以了。
第11课 电子时钟图14
我们已经初步掌握了数码管的使用方法,那么怎么可以让数码管能够即时显示当前时间,成为名副其实的电子时钟呢?
5.电子时钟
在使用数码管前一定要养成先关闭数码管再开启使用的好习惯。
第11课 电子时钟图15
然后,新建两个变量命名为时和分来储存小时和分钟。并且把“时间模块里的获取当前时获取当前分两块积木分别赋值给两个变量。
第11课 电子时钟图16

做好准备工作之后,我们就可以开启数码管了,把0号数码管的亮度设为1,其他的也数码管亮度也都是1了。
第11课 电子时钟图17
下面显示时间了。我们设定冒号左侧显示小时,右侧显示分钟,也就是0号和1号数码管显示的是小时,2号和3号数码管显示的是分钟。那我们应该怎样做呢?
我们以11:15为例,由于四位数码管是独立运行的,不能进行数位的换算,因此我们要依次设置四个数码管要显示的数字。
先来看小时的取法
11/10=1……1  获取整数部分放在0号位置
11/10=1……1  获取余数部分放在1号位置
再来看分钟的取法
15/10=1……5  获取整数部分,放在2号位置
15/10=1……5  获取余数部分,放在3号位置
程序如下图
第11课 电子时钟图18
由于1号点要在显示和不显示之间,也就是01之间来回循环,我们可以新建一个变量STEP,并在程序开始运行时赋值为0,然后赋值为1.我们可以用STEP+1来赋值,并且设定,当STEP的值大于2时,就把该变量重新赋值为0。那么这里我们就需要让1号数码管显示的点为变量step。加上重复执行。
生活中,通过观测,电子时钟显示时间时中间闪烁的冒号是以0.5秒的速度不停闪烁,那么我们在程序的尾端也添加上等待0.5秒的时间,让数码管电子时钟更接近生活。
视频展示
完整的脚本如下图:
第11课 电子时钟图19


shzrzxlee  高级技匠

发表于 2019-11-22 07:58:31

非开放的,不能注册
回复

使用道具 举报

dafeng388  高级技师
 楼主|

发表于 2019-11-23 10:14:38

shzrzxlee 发表于 2019-11-22 07:58
非开放的,不能注册

打开古德微平台,有联系方式,购买一个镜像SD卡,就拥有了帐号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail