0023 树莓派电脑控制单位数码管显示数字
作者:学哥
发布时间:2017-2-22
这节课,来学习如何控制单位数码管来显示数字。
电路原理
要使用一个电子元器件,首先是要掌握它的电路原理图,来看一下单位数码管的电路原理图:
我们选择的是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秒,可以利用前面做好的单个数字的显示函数程序。