Olá.
Primeiro não está sendo chato, pois realmente para alguém que tenha dificuldade em programar apenas aquele exemplo do Blink não basta.
Segundo, sua parte elétrica ficou muito boa, devia depois fazer um tutorial para o pessoal de como fez tudo.
Terceiro, vou deixar aqui um exemplo meio genérico para você com duas sequencias, mas pode implementar outras facilmente basta modificar alguns parâmetros.
E se ficar mais dúvidas é só voltar e perguntar.
Caso tenha alguma sequencia mais complicada que deseje explique melhor com detalhes e tempos como deseja que os LEDs pisquem e posso ajudar.
Esse meu exemplo é baseado em apenas 1 botão, conforme você pressiona ele, vai mudando para as sequencias que criar.
O botão está Ligado a Saída 13 e supondo que tenha apenas 1 modulo de LEDs sendo Vermelho ligado a Saída 2 e Azul a Saída 3.
const int pinoBotao = 13; // dando nome ao pino conectado o botao para facilitar durante a programacao
const int pinoLedVerm = 2; // dando nome ao pino conectado o LED Vermelho para facilitar durante a programacao
const int pinoLedAzul = 3; // dando nome ao pino conectado o LED Azul para facilitar durante a programacao
void setup() {
// inicializa os pinos dos LEDs como saidas
pinMode(pinoLedVerm, OUTPUT);
pinMode(pinoLedAzul, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(pinoBotao, INPUT);
//desliga os dois LEDs, apenas para ter certeza que quando inicia é com os LEDs apagados
digitalWrite(pinoLedVerm, LOW);
digitalWrite(pinoLedAzul, LOW);
}
void loop(){
sequenciaUm();
sequenciaDois();
}
void sequenciaUm(){
while(buttonState == LOW){//assim que entra na funçao só vai sair quando o botao for pressionado, ou seja, enquanto ele nao estiver pressionado vai ficar na funçao
//acende os LEDs azuis
digitalWrite(pinoLedAzul, HIGH);
//apaga LEDs vermelhos
digitalWrite(pinoLedVerm, LOW);
//aguarda um tempo de 500 ms
delay(500);
//acende os LEDs vermelhos
digitalWrite(pinoLedVerm, HIGH);
//apaga LEDs azul
digitalWrite(pinoLedAzul, LOW);
//aguarda um tempo de 500 ms
delay(500);
}
}
void sequenciaDois(){
while(buttonState == LOW){//assim que entra na funçao só vai sair quando o botao for pressionado, ou seja, enquanto ele nao estiver pressionado vai ficar na funçao
//acende os LEDs azuis
digitalWrite(pinoLedAzul, HIGH);
//acende LEDs vermelhos
digitalWrite(pinoLedVerm, HIGH);
//aguarda um tempo de 500 ms
delay(500);
//apaga os LEDs vermelhos
digitalWrite(pinoLedVerm, LOW);
//apaga LEDs azul
digitalWrite(pinoLedAzul, LOW);
//aguarda um tempo de 500 ms
delay(500);
}
}