COMO LER A ENTRADA DE UM BOTÃO A TODO MOMENTO?

Olá!

Estou iniciando o código abaixo.

// DECLARAÇÃO DAS VARIÁVEIS E CONSTANTES

int i;
int pinLed5 = 5;
int pinLed6 = 6;
int pinLed7 = 7;
int pinLed8 = 8;
int pinLed9 = 9;
int pinLed10 = 10;

void setup()
{
Serial.begin(9600); // INICIO A COMUNICAÇÃO SERIAL

// CONFIGURAÇÃO DOS PINOS DE SAÍDA

for(i = 5;i < 11;i++)
{pinMode(i,OUTPUT);}

Serial.println(“Os farois serão ligados!\n”); // ESSE TEXTO RODA UMA SÓ VEZ
}

void loop()
{

// SEQUÊNCIA DOS LEDS - LÓGICA DE DOIS FAROIS DE TRÂNSITO

digitalWrite(5,HIGH);
digitalWrite(10,HIGH);
delay(3000);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay(3000);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);

digitalWrite(10,LOW);
digitalWrite(8,HIGH);
delay(3000);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(3000);
digitalWrite(9,LOW);
digitalWrite(7,LOW);

Nele, dois farois de um cruzamento de ruas, por exemplo, rodam suas lógicas. O que eu quero, em seguida, é inserir um farol de pedestre que seja acionado a qualquer momento por um botão.

Como eu posso fazer a leitura desse botão - que seria o botão do pedestre - a todo o momento com esse código?

Pergunto, pois uma variável associada à leitura do botão vai assumir o valor da leitura quando o código chegar nesse ponto em que essa variável estiver e não quando alguém pressionar o botão.

Desse modo, alguém pressionará o botão num determinado momento; depois, quando o código ler a variável, ele estará em LOW, pois não estará mais pressionado.

Como se faz isso em qualquer tempo?

Abs

Apaga todos os delay()... simples.

Se precisares de direcção vê o exemplo blink without delay.

Ola, cacaedu.
Como o bubulindo disse (e mais de um vez) remova esses delay().

Mas porque remover os delay()?
A função delay() e do tipo bloqueio, ele interrompe toda a execução sequente do sketch até que o tempo do atraso seja cumprido. Assim sendo, e uma função em que o seu uso deve ser evitado, principalmente para períodos londos. O uso e aceitável para alguns mili segundos.
Para ter intervalos sem usar o delay() deve se comparar um tempo atual com o tempo anterior e teria que existir um contador de tempo incrementando a todo momento, desde que o Arduino foi ligado. Felizmente a API do Arduino fornece um contador, o millis().
Esse exemplo, Pisca-pisca sem delay, demostra como usar o millis() para piscar um led. Basta estender a ideia para o projeto do semáforo.