Arduino基础入门篇14—跳动的数码管

|

    阅读本文大概需要5分钟。

|

本篇介绍数码管显示器件,通过控制一位共阴极数码管动态显示数字0到9来了解数码管的使用。

1. 数码管介绍

数码管,又称LED数码管,是常见的用来显示数字的电子器件。通常由八段发光二极管封装在一起组成“8”字形状,外加一个小数点。数码管每一段都是一个独立的LED,通过控制相应段LED的亮灭使其组成相应数字形状来显示数字。

数码管的8个LED并联在一起,根据公共管脚的不同,分为共阳极数码管和共阴极数码管两种。其区别就是公共管脚是LED灯的正极还是负极。

Arduino基础入门篇14—跳动的数码管
数码管内部结构

如上图,数码管8个段分别命名为A,B,C,D,E,F,G,DP,其封装共10个引脚,其中上下方正中间的是公共极,其他引脚分别对应8个LED的另一端。

2. 实验材料

  • Uno R3开发板

  • 配套USB数据线

  • 面包板及配套连接线

  • 共阴极数码管

  • 1个220Ω限流电阻

Arduino基础入门篇14—跳动的数码管
数码管显示

那么如何让数码管来显示数字呢?比如显示数字0,我们只需要点亮A,B,C,D,E,F段LED,熄灭G,DP段LED即可。

3. 实验步骤

  1. 根据原理图搭建电路。

    数码管的A,B,C,D,E,F,G,DP引脚分别接入开发板的数字管脚7,6,5,10,11,8,9,4。数码管公共端接限流电阻,电阻另一端接GND。

    实验原理图如下图所示:

    Arduino基础入门篇14—跳动的数码管
    实验原理图g

    实物连接图如下图所示:

    Arduino基础入门篇14—跳动的数码管
    实物连接图
  2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

     1/*
    2      NixieTube
    3      控制共阴极数码管显示数字0到9
    4*/

    5
    6//设置控制各段的数字IO脚,具体几号引脚对应哪一段,来源为数码管官方引脚图。
    7int  pin_a  =  7;
    8int  pin_b  =  6;
    9int  pin_c  =  5;
    10int  pin_d  =  10;
    11int  pin_e  =  11;
    12int  pin_f  =  8;
    13int  pin_g  =  9;
    14int  pin_p  =  4;
    15
    16
    17//根据共阴极数码管段码表定义0~9显示的各段开关状态
    18int  numTable[10][8]  =  {
    19    //1为点亮,0为关闭
    20    //a    b    c    d    e    f    g    dp
    21    {11111100 },          //0
    22    {01100000 },          //1
    23    {11011010 },          //2
    24    {11110010 },          //3
    25    {01100110 },          //4
    26    {10110110 },          //5
    27    {10111110 },          //6
    28    {11100000 },          //7
    29    {11111110 },          //8
    30    {11110110 },          //9
    31 };
    32
    33
    34void  setup()
    35
    {
    36    for  (int  i  =  4;   i  <=  11;   i++)
    37    {
    38        pinMode(i,  OUTPUT);   //设置4~11引脚为输出模式
    39    }
    40 }
    41
    42void  loop()
    43
    {
    44    for  (int  i  =  0;   i  <  10;   i++)//以此显示数字0到9
    45    {
    46        digitalWrite(pin_a,  numTable[i][0]);   //设置a  引脚的电平
    47        digitalWrite(pin_b,  numTable[i][1]);   //设置b  引脚的电平
    48        digitalWrite(pin_c,  numTable[i][2]);   //设置c  引脚的电平
    49        digitalWrite(pin_d,  numTable[i][3]);   //设置d  引脚的电平
    50        digitalWrite(pin_e,  numTable[i][4]);   //设置e  引脚的电平
    51        digitalWrite(pin_f,  numTable[i][5]);   //设置f  引脚的电平
    52        digitalWrite(pin_g,  numTable[i][6]);   //设置g  引脚的电平
    53        digitalWrite(pin_p,  numTable[i][7]);   //设置dp引脚的电平
    54        delay(200);
    55    }
    56
    57 }
  3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

    Arduino基础入门篇14—跳动的数码管
    程序下载


3. 实验现象

数码管循环显示数字0到9。

Arduino基础入门篇14—跳动的数码管
实验现象

4. 实验分析

程序中定义了一个二位数组用来存储0到9的段码显示。然后在loop中通过for()循环遍历显示0到9,每个数字分别读取对应的段码表来控制相应段LED的亮灭。

根据使用场所和需求的不同,LED被封装成不同类型的数码管,但其基本原理都是相同的,都需要控制每一个LED的亮灭最终拼凑成需要显示的数字、字母甚至是汉字。

Arduino基础入门篇14—跳动的数码管

扫码加入微信公众号:TonyCode


原文始发于微信公众号(

TonyCode

):Arduino基础入门篇14—跳动的数码管

|

发表评论