Arduino:实现四位LED共阴极数码管显示——从认识、连接、程序到实现功能

这篇具有很好参考价值的文章主要介绍了Arduino:实现四位LED共阴极数码管显示——从认识、连接、程序到实现功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.认识四位共阴极数码管

(1)一位八段共阴极数码管

       在认识四位共阴极数码管之前我先介绍一下一位八段共阴极数码管。如左图所示为以为数码管的实物图,其中它共有10个引脚,且上下各五个。小数点位于右下时为数码管正面,在四位共阴极数码管中也是如此,在连接组装时尤为重要。

 arduino四位数码管,单片机,嵌入式硬件,c语言arduino四位数码管,单片机,嵌入式硬件,c语言

       右图所示为一位数码管示意图,将数码管引脚连接在Arduino上,由图所示我认为你可以对为什么是八段及共阴极有了自己一定的理解。其中,共阴极顾名思义是这些LED小灯公用一个阴极。对于如何在一位数码管上显示0-9,也就是指点亮数码管上位置不同的LED小灯。例如:显示0,点亮a,b,c,d,e,f,也就是将其对应的引脚2,3,6,7,8,4设置为HIGH。

void setup() {
  for(int i=2;i<=9;i++)
{
  pinMode(i,OUTPUT);
}

void loop() {
for(int i=2;i<=9;i++)
{
  digitalWrite(i,LOW);
}
//显示0
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);  
digitalWrite(4,HIGH);
digitalWrite(6,HIGH); 
digitalWrite(7,HIGH);
digitalWrite(8,HIGH); 
delay(500);
}

以上展示使得一位数码管显示数字0的代码

        同理我们就可以先写出1-9数字的显示代码。这是完成代码显示0-9的其中之一的方法,简单好理解但是代码写起来冗长比较麻烦。文章的后面我将会继续介绍两种较为简单的方法完成0-9数字显示。

(2)四位共阴极数码管

      简单介绍完一位八段数码管,回归正题,四位共阴极数码管的原理也是如此:

 arduino四位数码管,单片机,嵌入式硬件,c语言

      引用百度词条对共阴极数码管的介绍,“共阴极数码管是把所有led的阴极连接到共同接点COM,而每个led的阳极分别为a、b、c、d、e、f、g及dp(小数点)。其中8个led分别与概述图中的a~dp各段相对应,通过控制各个led的亮灭来显示数字。”结合上图了解四位共阴极数码管各个引脚的作用。

二.连接四级共阴极数码管

       a,b,c,d,e,f,g,dp八个引脚分别连接Arduino2-9引脚,COM1、2、3、4分别连接10、11、12、13引脚。如下图模拟连接图所示。因为其中LED的额定电压大约为3伏左右,而Arduino提供电压为5伏所以使用了8个小电阻。arduino四位数码管,单片机,嵌入式硬件,c语言

 实现0000为例,0-9显示为上方一位数码管所用方法。

void setup() {
  for(int i=2;i<=13;i++)
  {
    pinMode(i,OUTPUT);
  }

}

void loop() {
//实现0000
  for(int i=2;i<=13;i++)
  {
    digitalWrite(i,LOW);
  }
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(5,HIGH);

}

      其中COM,输出为高电压时不显示,例如上述程序,初始将所有引脚设置为低电压,所以才显示其四个零。

三.四位阴极数码管程序

1)

上面已经展示了一种方法,接下来用另一种较为简单的方式,代码如下:

#define SEG_A 2;
#define SEG_B 3;
#define SEG_C 4;
#define SEG_D 5;
#define SEG_E 6;
#define SEG_F 7;
#define SEG_G 8;
#define SEG_H 9;

#define COM1 10;
#define COM2 11;
#define COM3 12;
#define COM4 13;
unsigned char f[10][7]={//其中没有包括小数点,可根据需求编写相关程序
  {1,1,1,1,1,1,0},//0
  {0,1,1,0,0,0,0},//1
  {1,1,0,1,1,0,1},//2
  {1,1,1,1,0,0,1},//3
  {0,1,1,0,0,1,1},//4
  {1,0,1,1,0,1,1},//5
  {1,0,1,1,1,1,1},//6
  {1,1,1,0,0,0,0},//7
  {1,1,1,1,1,1,1},//8
  {1,1,1,1,0,1,1}//9
};

void setup(){
  Serial.begin(9600);
  for(int i=2;i<=13;i++)
  {pinMode(i,OUTPUT);}
}
void loop{
 for(int time=0;time<=1000;time++)//显示1234
  {Display(1,1);
  delay(3);
  Display(2,2);
  delay(3);
  Display(3,3;
  delay(3);
  Display(4,4);
  delay(3);
  }
void Display(int x,int y)//显示数字
{
  
  for(int i=2;i<=9;i++)
  {
    digitalWrite(i,LOW);
  }
  switch(x)
  {
    case 1:
    digitalWrite(10,LOW);
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    digitalWrite(13,HIGH);
    break;
    case 2:
    digitalWrite(10,HIGH);
    digitalWrite(11,LOW);
    digitalWrite(12,HIGH);
    digitalWrite(13,HIGH);
    break;
    case 3:
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,LOW);
    digitalWrite(13,HIGH);
    break;
    case 4:
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    digitalWrite(13,LOW);
    break;
    default:break;
  }
   digitalWrite(2,f[y][0]);
   digitalWrite(3,f[y][1]);
   digitalWrite(4,f[y][2]);
   digitalWrite(5,f[y][3]);
   digitalWrite(6,f[y][4]);
   digitalWrite(7,f[y][5]);
   digitalWrite(8,f[y][6]);
   }

以上程序结合函数与二维数组相关的知识编写出可以实现四位数码管显示数字的程序,若要显示B、C、D、E、F等字母也可用写成二维数组的方式同理可得。

2)

接下来用Arduino自带的七段数码管(8 个段引脚 - 七个段中的每一个加上小数点一个)的库函数,实现数码管显示数字的功能。

arduino四位数码管,单片机,嵌入式硬件,c语言arduino四位数码管,单片机,嵌入式硬件,c语言

 点击项目,从中选择包含库中的管理库,在管理库中搜索SevSeg选择安装。

 想要使用SevSeg中的功能,首先使用编译预处理命令#include "SevSeg.h"

#include "SevSeg.h"
SevSeg sevseg;//给数码管命名
byte set=COMMON_CATHODE;//若为共阳极数码管则为COMMON_ANODE 
byte number=4;//四位
byte COM[]={10,11,12,13};
byte pins[]={2,3,4,5,6,7,8,9};



void setup() {
  sevseg.begin(set,number,COM,pins);
  

}
void loop() {
   sevseg.setNumberF(36.777,2);//浮点型,小数位数为2
   sevseg.refreshDisplay();//刷新显示
    

 其中,此库函数想要做到延时引用delay函数可能会导致数码管不正常显示。对于此库函数还有更多的功能,大家可以在Arduino界面的库管理中点击更多信息了解更多的功能。

我对四位共阴极数码管的介绍就到此为止了,如有错误,敬请指正。文章来源地址https://www.toymoban.com/news/detail-783396.html

到了这里,关于Arduino:实现四位LED共阴极数码管显示——从认识、连接、程序到实现功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 四位数码管显示计时分钟和秒(单片机代码)

    8051系列单片机有两个定时器:T0和T1,分别称为定时器和定时器T1,这两个定时器都是16位的定时器/计数器;8052系列单片机增加了第三个定时器/计数器T2;它们都有定时或事件计数功能,常用于时间控制、延时、对外部时间计数和检测等场合。 8051单片机的两个定时器T0和T1分别都由两

    2024年02月12日
    浏览(32)
  • 基于FPGA的四位数码管显示按键计数器设计(verilog编程)

    软件:Vivado 2022.2 硬件:BASYS 3 设计描述:通过开发板上的四个按键,按下一次记数加一,分别由四个数码管从左到右分别显示四个按键记数情况。 例: 1.初始值为0000,意为无记数 2.当按下第一个按键,记数加一,数码管显示1000 3.再次按下一第一个按键,记数加一,数码管显

    2024年02月08日
    浏览(38)
  • 四位数码管3641AS的FPGA实现

             四位数码管3641AS为一款 共阴极 的四位八段数码管,其具体的每一段为单个二极管,可通过压降实现点亮,通过控制单位多段二极管的点亮实现数字或字母等字符。         共阴极:八段发光二极管的阴极端连接在一起,阳极端分开控制,使用时候公共端接地

    2024年02月05日
    浏览(35)
  • 【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块5

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月15日
    浏览(35)
  • 【雕爷学编程】Arduino动手做(81)--- 8位LED数码管模块2

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月15日
    浏览(31)
  • 基于STM32的四位数码管计数器设计与实现

    ✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进, 代码获取、问题探讨及文章转载可私信。  ☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。 🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇 点击领取更多详细资料 本文介绍了一种基于STM

    2024年02月02日
    浏览(38)
  • 单片机控制LED数码管的显示

    首先我们说说LED数码管的显示原理。 LED数码管是常见的显示器件。LED数码管为“8”字形的,其计8段(包括小数点段在内)或7段(不包括小数点段),每一段对应一个发光二极管,有共阳极和共阴极两种,如图所示。共阳极LED数码管的阳极连接在一起,公共阳极接到+5 V上;共阴极

    2024年02月01日
    浏览(36)
  • LED数码管的静态显示与动态显示(Keil+Proteus)

    就是今天看了一下书上的单片机实验,发现很多的器件在Proteus中都不知道怎么去查找,然后想做一下这个实验,尝试能不能实现,LED数码管的两个还可以实现,但是用LED点阵显示器的时候他那个网络标号不知道是什么情况,有两个东西,所以我也还没搞懂,先暂时就是把LE

    2024年02月08日
    浏览(26)
  • 51单片机通过两片74HC595级联,用8位LED数码管,分别显示当前日期,如:“2”、“0”、“-”、“0”、“5”、“-”、“2”、“6”,用Proteus仿真实现。

    1.先上仿真图,但这么连仿真图是不太正确的,要注意。展示的话能用就行。 2.从上到下依次放上数据手册上的引脚解释和逻辑功能和时序图    3.贴上代码:写了发送一字节数据函数,发送全部字节函数,加上一些写了很久的解释(求赞)。

    2024年02月08日
    浏览(48)
  • stm32使用四位数码管制作简易时钟(库函数版)

    1.数码管情况介绍 数码管接线引脚:    段码与上图情况,位选为:1-PB0,2-PB12,3-PB13,4-PB14。 本项目使用5461BS-1共四位数码管,为共阳型。  2.程序部分 Timer定时器: SMG数码管 main主函数 资料参考: (75条消息) STM32F103C8T6 I/O口驱动4位共阳数码管_io口控制数码管_seaup2011的博客-CSDN博

    2024年02月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包