树莓派Python如何用2位数码管显示CPU温度


这篇文章将为大家详细讲解有关树莓派Python如何用2位数码管显示CPU温度,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。概述前两天 我们学习使用1位数码管显示个位数字倒计时,这次我们学习使用2位数码管显示CPU的温度。通过本节课,我们能学习到:2位数码管的显示原理视觉暂留显示技巧所需硬件树莓派 x1面包板 x1杜邦线 x92位数码管 x1原理说明我们今天使用的是 3261BS 型号的2位共阳数码管,先看看它的电路原理图:通过 上一篇 的学习,我们能够看懂1位数码管的电路图了,而2位数码管可以简单的理解为2个1位数码管的组合。我们看最下面的一张图,10号引脚和5号引脚,分别是数码管第一个数字和第二个数字的公共阳极。目标一:让数码管1和数码管2的 A 管分别亮起来这个和操作1位数码管是一样的,但再看看接下来的目标可能就比较麻烦了:目标二:让数码管1的 A 管亮,同时让数码管2的 A 管不亮问题出来了:因为3号引脚是共用的,所以这种电路控制无法实现。那怎么解决这个问题呢?为了解决这个问题,这里我们需要借助视觉暂留视觉暂留这个原理最早源于电影制作。科学实验证明,人眼在某个视像消失后,仍可使该物像在视网膜上滞留0.1-0.4秒左右。电影胶片以每秒24格画面匀速转动,一系列静态画面就会因视觉暂留作用而造成一种连续的视觉印象,产生逼真的动感。家里常用的日光灯也是这个原理,日光灯并非一直亮着的,而是在以很快的频率进行亮灭亮灭,当闪烁的频率达到每秒25次以上的时候,人眼就认为是一直亮着的。可以利用这个原理,只要在足够短的时间间隔里分别显示2个数码管的数字,在人的视觉上就会认为这2个数字是同时显示的。那我们在电路控制采用的办法就是对3号引脚进行分时分配:0.01秒用于数码管1的 A 管,接下来的0.01秒用于数码管2的 A 管,这样1秒钟之内可以刷新50次,确保数码管没有闪烁感。连线图在开始连接硬件电路之前,首先要做的事是将树莓派电脑关机,并断开电源。因为如果树莓派主板带电的时候,进行插接电路可能会导致电子元器件的烧毁,所以一定要记住:连接电路的时候主板必须断电。示例代码#!/usr/bin/env python# encoding: utf-8”’接线图:RPi digital7 1011 513 315 929 831 633 735 437 1”’import RPi.GPIO as GPIOimport timeimport os# 数码管1-2正极分别使用的针脚LED_POWER_1 = 7LED_POWER_2 = 11# A-G管分别使用的针脚LED_A = 13LED_B = 15LED_C = 29LED_D = 31LED_E = 33LED_F = 35LED_G = 37# 获取CPU温度def get_cpu_temperature():return os.popen(‘ 香港云主机vcgencmd measure_temp’).read()[5:7]# 重置数码管,熄灭所有数字def reset():GPIO.output((LED_POWER_1, LED_POWER_2), GPIO.LOW)GPIO.output((LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G), GPIO.HIGH)# 设置第几个数码管亮起def set_position(position):if position == 1:GPIO.output(LED_POWER_1, GPIO.HIGH)else:GPIO.output(LED_POWER_2, GPIO.HIGH)# 显示数字0def show0(p):reset()set_position(p)GPIO.output((LED_A, LED_B, LED_C, LED_D, LED_E, LED_F), GPIO.LOW)# 显示数字1def show1(p):reset()set_position(p)GPIO.output((LED_B, LED_C), GPIO.LOW)# 显示数字2def show2(p):reset()set_position(p)GPIO.output((LED_A, LED_B, LED_D, LED_E, LED_G), GPIO.LOW)# 显示数字3def show3(p):reset()set_position(p)GPIO.output((LED_A, LED_B, LED_C, LED_D, LED_G), GPIO.LOW)# 显示数字4def show4(p):reset()set_position(p)GPIO.output((LED_B, LED_C, LED_F, LED_G), GPIO.LOW)# 显示数字5def show5(p):reset()set_position(p)GPIO.output((LED_A, LED_C, LED_D, LED_F, LED_G), GPIO.LOW)# 显示数字6def show6(p):reset()set_position(p)GPIO.output((LED_A, LED_C, LED_D, LED_E, LED_F, LED_G), GPIO.LOW)# 显示数字7def show7(p):reset()set_position(p)GPIO.output((LED_A, LED_B, LED_C), GPIO.LOW)# 显示数字8def show8(p):reset()set_position(p)GPIO.output((LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G), GPIO.LOW)# 显示数字9def show9(p):reset()set_position(p)GPIO.output((LED_A, LED_B, LED_C, LED_D, LED_F, LED_G), GPIO.LOW)GPIO.setmode(GPIO.BOARD)# 初始化引脚输出模式GPIO.setup((LED_POWER_1, LED_POWER_2, LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G), GPIO.OUT)function_directory = locals()try:while True:cpu_temperature = get_cpu_temperature()print ‘CPU temperature = %sC’%(cpu_temperature)loop = 0while loop
loop += 1# 先显示高位position = 1for n in cpu_temperature:function_directory[‘show%s’%(n)](position)time.sleep(0.01)position += 1except KeyboardInterrupt:GPIO.cleanup()保存为digital-2.py,并运行之。关于树莓派Python如何用2位数码管显示CPU温度就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

相关推荐: win7鼠标双击无法打开文件夹如何解决

这篇文章主要介绍“win7鼠标双击无法打开文件夹如何解决”,在日常操作中,相信很多人在win7鼠标双击无法打开文件夹如何解决问题上存在疑惑,小编查阅了各式 香港云主机资料,整理出简单好用的操作方法,希望对大家解答”win7鼠标双击无法打开文件夹如何解决”的疑惑…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/12 11:13
下一篇 08/12 11:13

相关推荐