如何使用不断变化的 int 值来调用 Arduino 上的不同函数?

How can I use a changing int value to call different functions on an Arduino?

我正在我的 Arduino Uno 上编程(有点)带有开始按钮和 4 位七段 LED 显示屏的秒表。

有了这样的功能,我可以毫无问题地将数字放在 SevSeg 上:

void Zahl_1()
{
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);
}

通过单击按钮 a 可以启动时钟(数字存储在 int sekunden 中)并且 Serialprint 确实会给我正确的数字。

我的问题介于两者之间;我不能 link 例如 (sekunden == 1)Zahl_1().

我这样试过,没有成功:

void Sek()
{
  if (sekunden == 0)
  {
    Zahl_0;  //
  }
  if (sekunden == 1)
  {
    Zahl_1;
  }
  if (sekunden == 2)
  {
    Zahl_2;
  }
  if (sekunden == 3)
  {
    Zahl_3;
  }
  if (sekunden == 4)
  {
    Zahl_4;
  }
  if (sekunden == 5)
  {
    Zahl_5;
  }
  if (sekunden == 6)
  {
    Zahl_6;
  }
  if (sekunden == 7)
  {
    Zahl_7;
  }
  if (sekunden == 8)
  {
    Zahl_8;
  }
  if (sekunden == 9)
  {
    Zahl_9;
  }
}

关于如何在不重写整个程序的情况下使它工作的任何想法?

提前致谢!

此致

这里的问题是您没有调用任何函数。要调用函数,您可以:

function();

在您的示例中,您缺少括号。

我想指出的另一件事是您对 if 语句的使用。在根据变量的值执行操作时,使用 switch 语句更有效,也是更好的做法。

示例:

switch (sekunden) {
  case 0:
    Zahl_0();
    break;
  case 1:
    Zahl_1();
    break;
  case 2:
    Zahl_2();
    break;
  default:
    println("Nothing matches");
    break;
}

更多信息在这里:Switch case structure