The code:
unsigned long lastStepTime = 0;
int currentStep = 0;
int tempo = 0;
int switchPinArray[2] = {34, 33};
int ledPinArray[4] = {29, 30, 31, 32};
int totalLEDs = 4;
void setup() {
Serial.begin(9600);
for(int i = 0; i < 2; i++){
pinMode(switchPinArray[i], INPUT);
}
for(int i = 0; i < totalLEDs; i++){
pinMode(ledPinArray[i], OUTPUT);
}
}
void loop() {
tempo = analogRead(A16);
if(digitalRead(switchPinArray[1]) == HIGH){
randomBlink();
}
else{
if(digitalRead(switchPinArray[0]) == HIGH){
stepBackwards();
}
else{
stepForwards();
}
}
}
void stepForwards(){
digitalWrite(ledPinArray[currentStep], HIGH);
if(millis() >= tempo + lastStepTime){
digitalWrite(ledPinArray[currentStep], LOW);
lastStepTime = millis();
currentStep++;
}
if(currentStep == totalLEDs){
currentStep = 0;
}
}
void stepBackwards(){
digitalWrite(ledPinArray[currentStep], HIGH);
if(millis() >= tempo + lastStepTime){
digitalWrite(ledPinArray[currentStep], LOW);
lastStepTime = millis();
currentStep--;
}
if(currentStep < 0){
currentStep = 3;
}
}
void randomBlink(){
digitalWrite(ledPinArray[currentStep], HIGH);
if(millis() >= tempo + lastStepTime){
Serial.println("turn off");
digitalWrite(ledPinArray[currentStep], LOW);
currentStep = random(0,4);
lastStepTime = millis();
}
}