/* Program 2-12 Control LEDs using push-button switches.*/ const int LED[] = {5, 9, 10}; const int SW[] = {3, 4, 7}; void setup() { /* configure input output pins for switches and LEDs */ for (int i = 0; i < 3; i++) { pinMode(LED[i], OUTPUT); pinMode(SW[i], INPUT); } } void loop() { /* read switches and use the values to set LEDs */ digitalGroupWrite(LED, 3, digitalGroupRead(SW, 3)); } /* write to a group of output pins */ void digitalGroupWrite(const int* group, int length, int data) { for (int i = 0; i < length; i++) digitalWrite(group[i], data & (1 << i) ? HIGH : LOW); } /* read from a group of input pins */ int digitalGroupRead(const int* group, int length) { int data = 0; for (int i = 0; i < length; i++) { if (digitalRead(group[i])) { data |= 1 << i; } } return data; }