用1位数码管显示数字倒计时

概述

上一篇 我们学习了使用 PWM 来控制 LED 的亮度,这次我们学习使用1位数码管显示个位数字倒计时。

通过本节课,我们能学习到:

1位数码管的显示原理

所需硬件

树莓派 x1

面包板 x1

杜邦线 x9

1位数码管 x1

名称解释

数码管

数码管也称 LED 数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。

数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。

按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

1位共阳数码管电路图

我们今天使用的是 5161BS 型号的1位共阳数码管,先看看它的电路原理图:

左图是数码管的每个管子的定义,从最上面的 A 管依次到中间的 G 管,还有小数点的 DP 管。通过组合 A 管到 G 管的不同亮起来和熄灭,就可以显示出数字信息。比如,让ABCDG这5根管亮起来,就能显示数字3了。

左图还包含关于引脚的编号,从正面看过去,让小数点放在右下角,下面从左到右为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 管就会熄灭。

连线图

在开始连接硬件电路之前,首先要做的事是将树莓派电脑关机,并断开电源。因为如果树莓派主板带电的时候,进行插接电路可能会导致电子元器件的烧毁,所以一定要记住:

连接电路的时候主板必须断电。

图片使用 Fritzing 绘制,更多示例图片请到 Fritzing官网 浏览。

电路原理图

示例代码

#!/usr/bin/env python# encoding: utf-8'''该程序实现 9 --> 0 倒计时效果接线图:RPi digital7 <---> 311 <---> 713 <---> 615 <---> 429 <---> 231 <---> 133 <---> 935 <---> 1037 <---> 5'''import RPi.GPIO as GPIOimport time# 正极使用的针脚LED_POWER = 7# A-G管分别使用的针脚LED_A = 11LED_B = 13LED_C = 15LED_D = 29LED_E = 31LED_F = 33LED_G = 35LED_DP = 37# 重置数码管,熄灭所有数字def reset(): GPIO.output(LED_POWER, GPIO.LOW) GPIO.output((LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G, LED_DP), GPIO.HIGH)

保存文件为

digital-1.py

,并运行之。

sudo python digital-1.py

最终效果

python数码管倒计时程序_树莓派Python编程用1位数码管显示数字倒计时相关推荐

  1. python怎么做软件程序_看 Python 超级程序员使用什么开发工具

    Python超级程序员使用的开发工具 我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发 ...

  2. python学生数据完善程序_「Python」每日一练:学生数据完善程序

    编程题 1.现有一程序已创建了4个列表,这4个列表中有添加元素,但列表中的数据不完善,有一定的错误,内容如下所示: list1=["学号","姓名"," ...

  3. python语音控制电脑程序_用Python编程实现语音控制电脑_天津SEO

    天津SEO 电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比 ...

  4. python 搭建web应用程序_用Python构建数据科学Web应用程序

    作者|Chanin Nantasenamat 编译|VK 来源|Towards Data Science 在本文中,我将向你展示如何使用streamlit python库快速构建一个简单的数据驱动we ...

  5. 用python做毕业设计小程序_用Python写一个模拟qq聊天小程序的代码实例

    Python 超简单的聊天程序 客户端: import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput des ...

  6. 用python录入成绩储存程序_用Python创建成绩计算器的程序

    在学术中,通常需要在评估后找到学生的成绩.在本文中,我们将创建一个Python程序,该程序将根据评分标准分配评分.将其称为年级计算器. 分级标准 以下是我们为该计划选择的评分标准.score > ...

  7. python代码变成运行程序_用Python脚本转换成windows的可执行程序

    下载并运行与你所安装的Python对应的py2exe版本的 installer,这将安装py2exe和相应的例子:这些例子被安装在lib\site-packages\py2exe\samples目录下 ...

  8. python写一个表白程序_用Python写一个能算出自己年龄的小程序

    用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...

  9. python快递分拣小程序_利用Python开发的ATM小程序

    最近在学习Python,便利用业余时间开发了一个模拟ATM抢银行的小程序,不废话,直接上程序 #!/usr/bin/env python #coding=utf-8 # Name: AtmCard.p ...

最新文章

  1. Android 四大组件之——Acitivity(二) 启动模式
  2. Windbg+sos调试.net笔记
  3. 7 Redis 事务
  4. GDCM:gdcm::FileAnonymizer的测试程序
  5. 火车头采集php源码不同,防火车头采集的功能
  6. 一个基础的 HTML 文档有哪些标签?(3)
  7. Scala中的None,Nothing,Null,Nil
  8. Hibernate Session和Jpa EntityManager
  9. 指针和字符串,数组和字符串(1)
  10. 关于Qt学习之路2:8、添加动作 这一节课 发现里面的程序运行后没有图标
  11. 你有全面了解过LIMS系统吗?
  12. 【selenium 模拟拼图】滑动拼图验证码10分钟教程
  13. 怎么选择外贸邮箱,收费企业邮箱大全
  14. 分享一个自定义桌面程序框架
  15. 1、玩转树莓派音频——DIY具有输入输出的声卡(非USB)
  16. erlang与rabbitmq下载(Window)
  17. java -- 解决InputStream不可重复读的问题
  18. VB小游戏设计(一):扫雷
  19. The file Tomcat8.exe was not found... Either the CATALINA_HOME environment variable is not defined c
  20. PaddleHub百度飞桨【Python小白逆袭大神】七天打卡营心得

热门文章

  1. 股指期货套期保值、套利、投机
  2. JavaWeb学习笔记之——CSS
  3. 计算机网络基础-1-绪论
  4. Android冷启动和热启动
  5. 成为Java顶尖程序员 ,看这12本书就够了
  6. sqlite的可视化管理工具SQLite Expert
  7. Cause: java.sql.SQLException: connection closed问题排查、解决
  8. 当有人知道你的愿望想帮你实现你会是怎样
  9. MySql学习之组合查询(UNION)和全文本搜索(Match()和Against())
  10. codeforces 766 C Mahmoud and a Message