2011-03-25 24 views
0

我們引腳上ArduinoMega這樣定義的:如何有效閱讀Arduino Mega上隨機排列的20個引腳?

#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語句讀取每個引腳。我正在考慮使用數組,但我該如何有效地做到這一點?

回答

4

因此,您的應用程序中有x1-20,並且您將這些值連接到I/O連接器上的任意引腳?

只需限定

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

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

PS它們之間的陣列的映射。您不再需要#defines了,只需使用x[N]代替xN即可。

+0

是的,謝謝。 – infinitloop 2011-03-25 00:27:31