Arduino 专题学习

【项目10-任务13-小组19】四位数码管实现0到9999计数

2019-07-06  本文已影响2人  0129孙敏

1.实验主角

四位数码管

将万用表跳到二极管档位上,将红黑表笔放在引脚上哪节灯亮就代表该引脚控制哪个灯管。我们买的是14根引脚的,在本次实验中我们只用到12根引脚,用不到控制数码管中间俩点的引脚,经过测量我们发现第7和8引脚是控制中间俩点的,故在本次实验中不考虑。

2. 实验材料

nano 开发板

配套USB数据线

面包板

杜邦线若干

四位共阴极数码管

4个4700Ω限流电阻

四位数码管引脚
电阻识别

3.实验步骤

(1)根据四位数码管的引脚图连接电路

a,b,c,d,e,f,g,dp引脚分别连接开发板的数字引脚7,6,5,10,11,8,9,4。数码管的1,2,3,4引脚分别串联220Ω限流电阻,电阻另一端分别连接开发板的数字引脚2,3,12,13。

直观的引脚图
实验实物图

(2)下载SevSeg库

打开Arduino IDE,找到菜单栏的【项目】——【加载库】——【管理库】,搜索“SevSeg”,下载此库。

下载sevseg库

sevseg是数码管驱动库,常用于四位数码管的驱动。


3. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存

```

/*

* SevSegFour

* 驱动四位数码管显示0到9999

*/#include"SevSeg.h"SevSeg sevseg;

byte numDigits = 4; //数码管位数

byte digitPins[] = {2, 3, 12, 13}; //数码管公共极连接Arduino的引脚

byte segmentPins[] = {7, 6, 5, 10, 11, 8, 9, 4}; //数码管a,b,c,d,e,f,g,dp对应引脚

byte hardwareConfig = COMMON_CATHODE ; // 共阴极数码管

int numToShow = 0;int delaycount = 0;voidsetup(){

  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins); //初始化数码管}

voidloop(){

  delaycount++;

  if (delaycount  == 1000) { //通过变量自加来达到延时效果,如果使用delay函数则会打断数码管显示    delaycount = 0;

    numToShow++;

  }

  if (numToShow > 9999)

  {numToShow = 0;}

  sevseg.setNumber(numToShow, -1); //设置要显示的数据,不显示小数点  sevseg.refreshDisplay(); // 必须重复运行刷新数码管显示}

代码中用到delaycount延时函数。delaycount == 1000表示数码管数字每+1的时间间隔为1000ms


4. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

4.实验现象

数码管从0开始计数
上一篇下一篇

猜你喜欢

热点阅读