零基础学编程每天写1000字工具癖

0023 树莓派电脑控制单位数码管显示数字

2017-02-22  本文已影响194人  学哥量化交易学习


这节课,来学习如何控制单位数码管来显示数字。

电路原理

要使用一个电子元器件,首先是要掌握它的电路原理图,来看一下单位数码管的电路原理图:

我们选择的是5611B型号的单位数码管

可以看到上面第一行的第一个图是正面的尺寸图

第一行的第二个图是侧面的尺寸图

第一行的第3个图是数码管的每个管子的定义,从最上面的A管依次到中间的G管,还有小数点的DP管

通过组合A管到G管的不同亮起来和熄灭,就可以显示出数字信息

例如,让FGBC这四个管亮起来,就能显示数字4了

第二行的第一个图还是另外一个侧面的尺寸图

第二行的第二个图是关于引脚的编号,从正面看过去,让小数点放在右下角,下面从左到右为1到5号引脚

上面从右向左是6到10号引脚

这10个引脚的编号很重要,因为需要了解每个引脚的功能定义,才能决定如何通过引脚输入电压信号

第三行的图是电路原理图

上面一层是3号引脚或者8号引脚

中间一层是A管到DP管,也就是数码管的8个管子

下面一层是10个引脚剩余的8个引脚

解释一下这个电路原理图

当中的A管到DP管,大家可以当作每个管都是一个led灯一样的,有正极和负极

正极输入高电压,负极输入GND,就可以让数码管的单个管子亮起来

比如3号引脚输入高电压,7号引脚输入低电压GND,A管的2端产生电压差,就可以让A管亮起来

但是如果7号引脚如果也输入高电压,A管的2端没有电压差,A管就会熄灭

假如3号引脚输入低电压,那么无论7号引脚是高电压还是低电压,都无法让A管亮起来

比如3号引脚输入高电压,2号引脚输入低电压GND,D管的2端产生电压差,就可以让D管亮起来

但是如果2号引脚如果也输入高电压,D管的2端没有电压差,D管就会熄灭

假如3号引脚输入低电压,那么无论2号引脚是高电压还是低电压,都无法让D管亮起来

其它的管子都是一样的原理

这里要特别说明一下,数码管有2种型号,一种叫共阳数码管,另一种叫共阴数码管

区别在于公共端是阳极还是阴极

我们看上面的电路图,3或8号引脚是公共端,是接到数码管的正极阳极,所以我们这里的就是共阳数码管

假如将A管到DP管的正极和负极对掉的话,就变成了共阴数码管了。

一个灯A管接线

我们先来让A管亮起来,按照如下规则接线:

树莓派GPIO的7号口,用杜邦线连接到单位数码管的3号引脚

树莓派GPIO的11号口,用杜邦线连接到单位数码管的7号引脚

实际接线图如下:

编写程序让一个灯A管亮起来

编写代码如下:

运行结果如下:

可以看到灯A管亮了3秒钟后熄灭

程序解释说明

首先将7号口设置为低电压,将11号口设置为高电压,确保led灯是熄灭状态

然后设置7号口为高电压,就让数码管的3号引脚变为高电压

然后设置11号口为低电压,就让数码管的7号引脚变为低电压

这样灯管A就会亮起来

休眠3秒后,将7号口设置为低电压,灯管A熄灭

全部灯管接线

树莓派GPIO的12号口,用杜邦线连接到单位数码管的6号引脚

树莓派GPIO的13号口,用杜邦线连接到单位数码管的4号引脚

树莓派GPIO的15号口,用杜邦线连接到单位数码管的2号引脚

树莓派GPIO的16号口,用杜邦线连接到单位数码管的1号引脚

树莓派GPIO的18号口,用杜邦线连接到单位数码管的9号引脚

树莓派GPIO的21号口,用杜邦线连接到单位数码管的10号引脚

树莓派GPIO的22号口,用杜邦线连接到单位数码管的5号引脚

实际接线图如下:

显示数字1

要显示数字1,需要将灯管B和C亮起来,其它灯管熄灭

那么需要将GPIO的12号口和13号口设置为低电压,其它口设置为高电压,就可以显示数字1了

编写代码如下:

运行结果如下:

显示所有数字

参照数字1的方法,可以编写数字2到数字9的程序如下:

运行结果可以看到,数字从1到9每个数字显示3秒后熄灭。

大家认真学习代码的写法,注意这里没有在每个数字亮3秒之后,设置为熄灭的动作,是因为接着需要显示下一个数字。

另外其中的GPIO.setwarnings(False)这一句代码的用途是不显示相关的一些警告信息。试试看不写这行代码有什么效果。

课后作业

1.循环显示数字从0到9,间隔1秒,然后再从0到9,循环显示3次。注意要将每个数字的显示程序做成函数调用。

2.数字倒计时显示,从9倒计时到0,间隔1秒,可以利用前面做好的单个数字的显示函数程序。

上一篇下一篇

猜你喜欢

热点阅读