树莓派驱动数码管c 语言,用树莓派驱动八段数码管实现倒计时

本文介绍如何使用树莓派Model B+的GPIO接口,通过C语言驱动一组共阳数码管实现倒计时功能。内容包括数码管的工作原理、驱动电路设计、程序实现,以及最终的倒计时效果展示。通过12个GPIO口控制4个八段数码管,实现四位数的倒计时,时间精确到0.1秒。
摘要由CSDN通过智能技术生成

[前面的文章](https://www.h5jun.com/post/raspberry-pi.html)我们说过,树莓派的 GPIO (通用输入输出)口设置为 OUTPUT 状态时,可以用程序控制它的电平高低,从而输出 0 和 1 逻辑。树莓派 Model B+ 一共有 26 个 GPIO 接口,今天我们用它其中的 12 个来驱动一组 4 个[八段数码管](http://baike.baidu.com/view/3080038.htm)。

在讲解具体实现之前,我们先来看一下成品:

[![](https://p.ssl.qhimg.com/d/inn/932c6216/num8.jpg)](http://weibo.com/p/230444961d86257b47c7ee06c08c0a42979814)

在这里,我们用一组 4 个八段数码管来实现一个倒计时器,用 node.js 的命令行启动,传入一个 1~999 的数字参数来表示秒数,然后数码管显示对应的数字并开始倒计时,时间精确到 0.1 秒。

要实现这个功能,我们先来了解什么是八段数码管,以及多位八段数码管的显示原理。

## 八段数码管

八段数码管由 8 个发光二极管组成,其中 7 个用于组成数字,1 个用于显示小数点。每一根的编号如下图的右上角所示(A-G,DP)。

![八段数码管](https://p.ssl.qhimg.com/d/inn/8198eac7/3461.jpg)

八段数码管又分为共阳和共阴两种,如果 8 个发光二极管共用 1 个正极,接 VCC,8 个输入引脚输入信号为低电平时点亮,叫做共阳数码管。反过来,如果 8 个发光二极管共用 1 个负极,接 GND,8 个输入引脚接入输入信号为高电平时点亮,叫做共阴数码管。本文采用的数码管型号为[F3461BH](http://item.jd.com/10064834450.html),是共阳数码管。

从上面分析可知,八段数码管有 8 个输入,一个公共正/负极,这样一位就是 9 个引脚。那么,4 位数码管是否就需要多达 36 个引脚呢?

实际上并不是,因为 4 位数码管也可以共用 8 个输入引脚,再分别各自引出公共正/负级,这样一共是 8 + 4 = 12 个引脚,然后利用控制公共正/负极输出的方式轮流显示。由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。事实上,这种方式也是电子电路常用的方法,例如点阵屏的逐行扫描,也是用同样的原理。

从上面 F3461BH 数码管的电路图可知,它的 12 个引脚中,第 6、8、9、12 引脚分别为 4 个数码管的公共正极,第 1、2、3、4、5、7、10、11 引脚为 8 段输入引脚。

## 电压和限流

了解了八段数码管的原理,基本上就知道该怎样接入了,但是我们还需要注意一下电子元件的参数,一般的数码管电压为 2V,电流 10~20mA,而树莓派 GPIO 高电平输出的电压约 3.3V,所以需要接限流电阻,电阻阻值的范围为:

* Rm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值