スケッチのピン名の変更

私はピンの名前を変更して、ある種の英数字の組み合わせとしてデータベースに投稿するようにしています。例えば、私が次のように定義すると....

#define APLHA 0
#define BRAVO 2
#define CHARLIE 5
#define DELTA 6

...私は0,2,5,6(またはどのようなピンが使用される)以外のものとして、dbに記録されているように、ピンの出力の名前を変更したいと思います。この演習の目的で、A、B、C、Dとしましょう。

これは、dbに転記する前に呼び出されたif()関数を作成するのと同じくらい簡単ですか(例えば0ならばA、2ならばBなど)?私はより良いものがなければならないように感じ、私はよりエレガントな(?)、これを行う方法を言う?

Current output:
PIN | VALUE
0 | 1
2 | 1
5 | 0
6 | 0

Desired:
PIN | VALUE
A | 1
B | 1
C | 0
D | 0

0
私はこれを過度に複雑にしているように思える。
追加された 著者 komma8.komma1,
データベースに名前を記録して、代わりにデータベースにデータベース化をさせてみましょう。
追加された 著者 Ignacio Vazquez-Abrams,
dbに記録されているように、ピンの出力の名前を変更したいと思います。これはわかりません。定義のリストのように、ピン名を付けることができます。ここの問題は何ですか?
追加された 著者 Nick Gammon,

1 答え

If I understood your question correctly, you're looking for something like this:

static const byte PIN_NUMBER[4] = { 0, 2, 5, 6 };
static const char *PIN_NAME[4] = { "A", "B", "C", "D" };

// and use them like this:

void Log(byte index)
{
  byte val = digitalRead(PIN_NUMBER[index]);
  Serial.print(PIN_NAME[index]);
  Serial.print('|');
  Serial.println(val);
}

void setup()
{
  for (byte i = 0; i < 4; ++i) pinMode(PIN_NUMBER[i], INPUT);
}

void loop()
{
  Serial.println("PIN|VALUE");
  for (byte i = 0; i < 4; ++i) Log(i);
  delay(1000);
}

Also, in the special case of "A", "B", "C", "D" as pin names, you don't really need the PIN_NAME array, instead of

Serial.print(PIN_NAME[index]);

you can use:

Serial.print('A' + index);
1
追加された
これはまさに私が探していたものです!ありがとうございました。私はそれを試して報告しますが、これは解決策に見えます。
追加された 著者 komma8.komma1,