本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字。

1. 四位数码管介绍

根据实际需要,把多个一位数码管封装在一起就成了多位数码管。常见的有两位、三位、四位、五位、六位等。

多位数码管

数码管根据位数不同,其封装的引脚也各不相同。但其内部都是将单个数码管的段选线a,b,c,d,e,f,g,dp对应连接在一起,公共极则相互独立。使用时分别通过控制不同的位选线(即单个数码管的公共极)来控制单个数码管的显示。以人眼难以分辨的速度进行刷新显示,即可达到多个数码管同时显示的效果。

四位数码管

2. 实验材料

Uno R3开发板

配套USB数据线

面包板及配套连接线

四位共阴极数码管

4个220Ω限流电阻

四位数码管引脚分布如下图所示,其中1,2,3,4表示对应位数码管的公共极。

四位数码管引脚图

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. 新建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;

void setup() {

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

}

void loop() {

delaycount++;

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

delaycount = 0;

numToShow++;

}

if (numToShow > 9999)

{

numToShow = 0;

}

sevseg.setNumber(numToShow, -1); //设置要显示的数据,不显示小数点

sevseg.refreshDisplay(); // 必须重复运行刷新数码管显示

}

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

程序下载

4. 实验现象

数码管从0开始累加显示数据。

实验现象

5. 实验分析

程序中根据实验原理图,通过数码管库函数进行数码管初始化,不断对numToShow变量进行累加,然后对数码管进行设置数据、刷新显示的操作。在程序中我们没有使用delay()函数进行延时,而是通过不断累加delaycount变量,在其达到理想阈值时对numToShow变量进行累加。

因为数码管需要不断重复刷新数据才能保持显示,若使用delay()进行延时,则程序将停止进行等待,这段时间数码管得不到刷新,显示就会受到影响,数码管会变暗、闪烁甚至熄灭。更加理想的做法是通过定时器来对数码管进行刷新。

arduino二位数码管_Arduino基础入门篇17—四位数码管的驱动相关推荐

  1. Arduino基础入门篇17—四位数码管的驱动

    本篇介绍四位数码管的使用,通过数码管库驱动四位数码管从0开始累加显示数字. 1. 四位数码管介绍 根据实际需要,把多个一位数码管封装在一起就成了多位数码管.常见的有两位.三位.四位.五位.六位等. 数 ...

  2. 12864液晶8x16ascii点阵_Arduino基础入门篇31—LCD1602液晶显示

    LCD1602显示 LCD1602也叫1602字符型液晶,是一种专门用来显示字母.数字.符号的点阵型液晶模块,能同时显示16X2即32个字符.本篇我们来认识LCD1602,驱动它显示「Hello Wo ...

  3. arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用

    本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度. Stepper库是官方提供的驱动库,我们启动Arduino IDE,点击「文件」-「示例」就能找到Stepper库,官方提 ...

  4. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏

    将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...

  5. arduino 光控灯_Arduino基础入门篇11—光控灯

    阅读本文大概需要3分钟. 本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占 ...

  6. 32读取ltc的温度值_Arduino基础入门篇29—模拟温度传感器LM35

    温度传感器就是利用物质随温度变化特性的规律,把温度转换成可输出信号的传感器,是普遍应用的传感器之一.本篇介绍模拟温度传感器-LM35. 1. LM35介绍 LM35是很常用的温度传感器元件,电路连接非 ...

  7. ardruino控制继电器_Arduino基础入门篇24—继电器控制

    继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...

  8. arduino 学习笔记及课件01基础入门

    arduino 学习笔记及课件01基础入门 以下学习笔记中图片部分由太极创客视频截图所得 概论 一. 引脚及信号 1.1引脚模式 INPUT:当Arduino没有使用上拉电阻或下拉电阻而直接与开放的开 ...

  9. EGE基础入门篇(二):开始使用EGE

    EGE专栏:EGE专栏 上一篇:EGE基础入门篇(一):绘图基础知识 下一篇:EGE基础入门篇(三):开场动画 EGE基础入门篇(二) 文章最后修改时间:2021年6月23日19:30:47 文章目录 ...

最新文章

  1. mysql查找内容某字符串出现的次数_查找MySQL中特定字符串出现的次数?
  2. AM3354开发 -- 使用root模式登录Ubuntu18.04
  3. 【MYSQL快速入门】常用函数:文本函数
  4. 大数据分析的思路与流程
  5. JavaScript验证表单大全【自用】
  6. 「leetcode」本周小结!(回溯算法系列二)
  7. 【大数据部落】基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理
  8. 四、Linux常用命令——文件搜索命令
  9. java八大排序算法详解
  10. 详细总结卡尔曼滤波原理+具体案例分析
  11. matlab 使用textscan读取带文本的csv文件
  12. 计算机按()的程序进行工作,2016计算机一级考试WPS练习题及答案
  13. python演唱会抢票脚本_基于selenium的大麦网演唱会抢票程序
  14. (最新,所有kali版本通用)kali中安装搜狗输入方法
  15. 苹果蓝牙日志如何获取
  16. VMvare win7软件闪退
  17. matlab2016自带ga,[转载]MATLAB中自带遗传算法函数GA的用法
  18. TCP-IP详解:SACK选项(wireshark抓包有SLE和SRE的SACK包)
  19. STM32单片机-汇编指令2
  20. 【论文阅读#1】Edge Computing: Vision and Challenges

热门文章

  1. XServer基本概念 + x11vnc配置远程桌面
  2. qduoj LC and Prime
  3. Android逆向工程:针对HTML5开发的App如何下手?这就带你上车!
  4. 免费ssl证书申请以及nginx配置https访问攻略
  5. windbg符号表路劲设置成功后没有自动下载
  6. disown and nohup
  7. Excel实现下拉时间按规律递增5分钟
  8. Python中scipy库对mat文件进行读写操作
  9. MySQL-03-索引
  10. 世界睡眠日PPT模板