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