美文网首页零基础学编程每天写1000字工具癖
0023 树莓派电脑控制单位数码管显示数字

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

作者: 学哥量化交易学习 | 来源:发表于2017-02-22 13:01 被阅读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秒,可以利用前面做好的单个数字的显示函数程序。

    相关文章

      网友评论

        本文标题:0023 树莓派电脑控制单位数码管显示数字

        本文链接:https://www.haomeiwen.com/subject/nbtmwttx.html