//pins numbers to set
int PINS[] = {3, 4, 5, 6, 7};
unsigned long DELAY_IN_MS = 500;
unsigned long mil = 0;
int pinsamount;
int pinset = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Setup...");
//pins amount
pinsamount = sizeof(PINS) / sizeof(PINS[0]);
Serial.println("Pins amount:" + String(pinsamount));
for (int i = 0; i < pinsamount; i++) {
Serial.println("init PINS[" + String(i) + "]=" + String(PINS[i]));
pinMode(PINS[i], OUTPUT);
}
Serial.println("Finish Setup");
Serial.println("----- Start Loop ---------");
mil = millis() + DELAY_IN_MS + 1;
}
void loop() {
if ((millis() - mil) > DELAY_IN_MS) {
mil = millis();
Serial.print("pinset=");
Serial.println(pinset, BIN);
for (int bits = 0; bits < pinsamount; bits++) {
int level = bitRead(pinset, pinsamount - bits - 1);
Serial.print("PIN" + String(PINS[bits]) + "->" + String(level) + ";");
digitalWrite(PINS[bits], level);
}
pinset++;
if (pinset > pow(2, pinsamount)) pinset = 0;
Serial.println();
Serial.println("-----");
}
}