连接到 arduino 的 4 位 12 针显示器

问题描述

我正在尝试制作一个 4 位 12 针显示秒表。 显示器带有 7 位线路引脚(A、B、C、D、E、F、G)和 4 位引脚(D1、D2、D3、D4)。我不需要第十二针。 线路引脚用于激活数字的单行,数字引脚用于激活数字。 所有激活的数字中的线条都会亮起。然后我为每个数字制定了方法 和数字。 4种激活数字的方法和10种激活单个数字的方法(从0到9)

enter image description here

所以如果我想显示一个零,我有这个方法

void NumberZero(){
digitalWrite(pinA,HIGH);
digitalWrite(pinB,HIGH);
digitalWrite(pinC,HIGH);
digitalWrite(pinD,HIGH);
digitalWrite(pinE,HIGH);
digitalWrite(pinF,HIGH);
digitalWrite(pinG,LOW);
}

如果我想激活第一个插槽/数字,我需要这个方法

void FirstSlot(){
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
digitalWrite(D3,HIGH);
digitalWrite(D4,HIGH);
}

所以在开始时,前 9 秒很容易,我只需要激活第四个插槽,然后激活以下所有数字:

FourthSlot();
NumberOne();
delay(1000);
NumberTwo();
delay(1000);
NumberThree();
delay(1000);
NumberFour();
delay(1000);
NumberFive();
delay(1000);
NumberSix();
delay(1000);
NumberSeven();
delay(1000);
NumberEight();
delay(1000);
NumberNine();
delay(1000);

然后为了避免在我开始在混合中添加更多数字时出现模糊的数字,我制定了一个清理方法

void Clean(){
digitalWrite(pinA,LOW);
digitalWrite(pinB,LOW);
digitalWrite(pinC,LOW);
digitalWrite(pinD,LOW);
digitalWrite(pinE,LOW);
digitalWrite(pinF,LOW);
digitalWrite(pinG,LOW);
}

所以现在在这 9 秒之后,我的第十秒看起来像这样:

for (int x = 0; x < 500; x++) {
  Clean();
  ThirdSlot();
  NumberOne();
  delay(1);
  Clean();
  FourthSlot();
  NumberZero();
  delay(1);
}

如您所见,我们需要在大约 1 毫秒内在两个数字之间快速切换,以同时分别显示它们。这是为了演示如何在这个 12 针 4 位显示器上显示数字。但我需要的是在一分钟内显示 60 个不同的数字。所以最好的解决方案是将这 10 个数字方法放在一个数组中。

我的问题是 - 如何将我所有的 Number 方法放在一个数组中?甚至可以将方法存储在数组中吗? 所以,而不是这样:

NumberZero();
NumberOne();
NumberTwo();
NumberThree();

我可以这样做:

Number[0];
Number[1];
Number[2];
Number[3];

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)