Как эффективно прочитать 20 случайно упорядоченных булавок на Arduino Mega? - PullRequest
0 голосов
/ 25 марта 2011

У нас есть пины, определенные на Arduino Мега таким образом:

#define x1 3
#define x2 14
#define x3 22
#define x4 52
#define x5 24
#define x6 50
#define x7 26
#define x8 48
#define x9 28
#define x10 46
#define x11 2
#define x12 15
#define x13 23
#define x14 53
#define x15 25
#define x16 51
#define x17 27
#define x18 49
#define x19 29
#define x20 47  

Как видите, номера выводов не соответствуют определенному порядку? Я не хочу использовать 20 if операторов для чтения каждого вывода. Я думаю об использовании массивов, но как мне сделать это эффективно?

1 Ответ

4 голосов
/ 25 марта 2011

Итак, у вас есть x1-20 в вашем приложении, и эти значения подключены к произвольным выводам на разъеме ввода / вывода?

Просто определите отображение массива между ними

int x[] = { 3, 14, 22 ........ 47 };

// Then just 
digitalRead(x[2]); // Reads pin 14.

PS.Вам больше не нужны #defines, просто используйте x[N] вместо xN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...