美文网首页Arduino 专题学习
【项目10-任务13-小组19】四位数码管实现0到9999计数

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

作者: 0129孙敏 | 来源:发表于2019-07-06 04:03 被阅读2次

    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开始计数

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/ygkbtctx.html