Meee Ajudem (Semáforo)

Comprei um arduino uno R3:
Preciso fazer um programa para a faculdade de um semáforo, que seja controlado seu tempo de transição entre os sinais entre 1 segunda e 1 minuto...
Preciso acrescentar ao meu código mais dois botões que façam o controle desse tempo e que cada vez que eu aperte um dos botões aumente um segundo no ciclo total do semáforo e quando apertar o outro diminua em um segundo o ciclo total...
Por favor me ajudem, estou quase arrancando os cabelos, já tentei muitos códigos e não deu certo.
obs: criei um botão para iniciar o semáforo.

Segue o código:

int button = 13;
int ledCarRed = 12;
int ledCarYellow = 11;
int ledCarGreen = 10;
int ledPedGreen = 9;
int ledPedRed = 8;
int ledPedYellow = 7;
unsigned long changeTimes;

void setup () {
pinMode(button, INPUT);
pinMode(ledCarRed, OUTPUT);
pinMode(ledCarGreen, OUTPUT);
pinMode(ledCarYellow, OUTPUT);
pinMode(ledPedRed, OUTPUT);
pinMode(ledPedGreen, OUTPUT);
pinMode(ledPedYellow, OUTPUT);
}

void loop () {
int value = digitalRead(button);
while(value==HIGH && (millis() - changeTimes)>0) {
changeTrafficLight();
}
}
void changeTrafficLight(){
digitalWrite(ledPedRed, HIGH);
digitalWrite(ledCarGreen, HIGH);
digitalWrite(ledCarYellow, LOW);
delay(1500);
digitalWrite(ledCarGreen, LOW);
digitalWrite(ledCarYellow, HIGH);
delay(1300);
for (int i=0; i<10; i++) {
digitalWrite(ledCarYellow, HIGH);
delay(100);
digitalWrite(ledCarYellow, LOW);
delay(100);
}
digitalWrite(ledCarYellow, LOW);
digitalWrite(ledCarRed, HIGH);
delay(1500);
digitalWrite(ledCarRed, HIGH);
digitalWrite(ledPedRed, LOW);
digitalWrite(ledPedGreen, HIGH);
delay(1500);
digitalWrite(ledPedGreen, LOW);
digitalWrite(ledPedYellow, HIGH);
delay(1300);
for (int i=0; i<10; i++) {
digitalWrite(ledPedYellow, HIGH);
delay(100);
digitalWrite(ledPedYellow, LOW);
delay(100);

}
digitalWrite(ledCarRed, LOW);
digitalWrite(ledPedYellow, LOW);
digitalWrite(ledPedRed, HIGH);
delay(1500);

}

O teu problema e "tentares" codigo em vez de pensares e escreveres codigo.

Um problema bastante obvio no teu codigo e o uso da funcao delay()... comeca por remover os delay() do codigo.

Outra coisa a teres em conta e a funcao millis().