资讯详情

Arduino点亮数码管

Arduino点亮数码管

    • 前言
    • 所需组件
    • 电路图及工作说明
    • 代码

前言

在本教程中,我们将连接七段显示器 ARDUINO UNO。显示屏从 0 到 9 计数并将自己重置为零。在继续之前,让我们先讨论七段显示器。您还可以查看相关信息arduino 详细七段显示器的详细教程。

七段显示器的名称来源于它有七段照明。这些部分中的每一个都有一个 LED(发光二极管),所以是照明。LED 每一种制造方式 LED 所有的照明都包含在自己的段落中。这里需要注意的重要一点是,任何七段显示器中 LED 均以共阳极模式(共正极)或共阴极模式(共负极)排列。 在这里插入图片描述共阴共阳LED如上图所示。这里可以观察到,在这里 CC 中,每个 LED 负极端子连接在一起并引出 GND。在 CA 中,每个 LED 正极作为正极连接在一起 VCC 引出。这些 CC 和 CA 多单元多路复用在一起非常方便。

所需组件

硬件: ARDUINO UNO,电源(5v),HDSP55037段显示器(两块)(任何共阴极都可以)uF电容器(跨接电源)。

软件: arduino IDE

电路图及工作说明

为 7 段显示器完成的连接如下:

PIN1 或 E 到 ARDUINO UNO 的 PIN 6

PIN2 或 D 转 PIN 5

PIN4 或 C 转 PIN 4

PIN5 或 H 或 DP 到 PIN 9 ////不需要,因为我们没有使用小数点

PIN6 或 B 转 PIN 3

PIN7 或 A 到 PIN 2

PIN9 或 F 转 PIN 7

PIN10 或 G 转 PIN 8

PIN3 或 PIN8 或 CC 通过 100Ω 电阻接地。

假设我们已经连接到一个端口,我们现在需要了解工作原理,假设我们已经连接到端口。A段显示器到PIN0”,“B段显示器到PIN1”,“A段显示器到PIN三、一段显示转PIN四、一段显示转PIN一段显示转PIN六、如图所示为共地型。

在这里,显示器必须接地才能工作。万用表可以用来检查二极管模式下显示的每一段。每段电源不得超过4v,否则,显示器将永久损坏。为了避免这种情况,公共电阻器可以在公共终端上提供,如电路图所示。

现在,如果我们想在这个显示中显示一个0,如下图所示。

我们需要打开A、B、C、D、EF”段的LED,所以我们需要给它PIN0、PIN1、PIN2、PIN3、PIN4和PIN5供电。所以每次我们需要一个0,我们都需要为所有提到的引脚供电。

现在,如果我们想展示1

我们需要B、C段供电,为使 B、C 段打开,我们需要为 PIN1、PIN2 供电。两个引脚都很高,我们显示了1。因此,如上所示,我们将为显示器上显示的数字对应的引脚供电。

在这里,我们将编写一个程序,打开和关闭每一段,计数为 0-9。0-9 工作计数器 最好在下面给出 C 逐步解释代码:

代码

#define segA 2//connecting segment A to PIN2 #define segB 3// connecting segment B to PIN3 #define segC 4// connecting segment C to PIN4 #define segD 5// connecting segment D to PIN5 #define segE 6// connecting segment E to PIN6 #define segF 7// connecting segment F to PIN7 #define segG 8// connecting segment G to PIN8 int COUNT=0;//count integer for 0-9 increment void setup() { 
           for (int i=2;i<9;i++)
   { 
        
     pinMode(i, OUTPUT);// taking all pins from 2-8 as output
   }
}

void loop()
{ 
        
   switch (COUNT)


                { 
        


 


                case 0://when count value is zero show”0” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, HIGH);


                digitalWrite(segF, HIGH);


                digitalWrite(segG, LOW);


                break;


 


                case 1:// when count value is 1 show”1” on disp


                digitalWrite(segA, LOW);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, LOW);


                digitalWrite(segE, LOW);


                digitalWrite(segF, LOW);


                digitalWrite(segG, LOW);


                break;


 


                case 2:// when count value is 2 show”2” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, LOW);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, HIGH);


                digitalWrite(segF, LOW);


                digitalWrite(segG, HIGH);


                break;


 


                case 3:// when count value is 3 show”3” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, LOW);


                digitalWrite(segF, LOW);


                digitalWrite(segG, HIGH);


                break;


 


                case 4:// when count value is 4 show”4” on disp


                digitalWrite(segA, LOW);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, LOW);


                digitalWrite(segE, LOW);


                digitalWrite(segF, HIGH);


                digitalWrite(segG, HIGH);


                break;


 


                case 5:// when count value is 5 show”5” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, LOW);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, LOW);


                digitalWrite(segF, HIGH);


                digitalWrite(segG, HIGH);


                break;


 


                case 6:// when count value is 6 show”6” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, LOW);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, HIGH);


                digitalWrite(segF, HIGH);


                digitalWrite(segG, HIGH);


                break;


 


                case 7:// when count value is 7 show”7” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, LOW);


                digitalWrite(segE, LOW);


                digitalWrite(segF, LOW);


                digitalWrite(segG, LOW);


                break;


 


                case 8:// when count value is 8 show”8” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, HIGH);


                digitalWrite(segF, HIGH);


                digitalWrite(segG, HIGH);


                break;


 


                case 9:// when count value is 9 show”9” on disp


                digitalWrite(segA, HIGH);


                digitalWrite(segB, HIGH);


                digitalWrite(segC, HIGH);


                digitalWrite(segD, HIGH);


                digitalWrite(segE, LOW);


                digitalWrite(segF, HIGH);


                digitalWrite(segG, HIGH);


                break;


 


                break;


                }


                if (COUNT<10)


                { 
        


                                COUNT++;


                                delay(1000);///increment count integer for every second


                }


                if (COUNT==10)


                { 
        


                                COUNT=0;// if count integer value is equal to 10, reset it to zero.


                                delay(1000);


                }


}

标签: 连接器地线端子定位结构接地电阻cc2520

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台