How to loop over analog pins? I want to do something along the lines of

for (int i = 0; i &lt; 4; i++) {
  analogRead(i);
}


Which appears to work, but the following does not:

for (int i = 0; i &lt; 4; i++) {
  pinMode(i, INPUT);
  pinMode(i + 4, OUTPUT); // should make Analog Pin (i + 4) into an output
  digitalWrite(i + 4, LOW);
  analogRead(i);
}


Instead, it appears to treat the pin addressed by digitalWrite(i + 4, LOW); as one of the digital pins.

Do I really have to explicitly specify A0, A1, A2, ... anytime I want to loop over the analog pins?
Yes, the analog pins must be addressed using A0, A1,... when using them for digital I/O.

Depending on the board you are using A0,A1,etc. are mapped to different values (for instance it looks like A0 is 18 on some boards but 14 on others.

One solution for looping over the analog pins would be this:

static const uint8_t analog_pins[] = {A0,A1,A2,A3,A4};
// Setup pins for input
for (int i = 0; i &lt; 5; i++) { //or i &lt;= 4
  digitalRead(analog_pins[i]);
}


If you are using the analog pins only with the analogRead() call you can use 0,1,... instead of A0,A1,...