CONDICIONAIS, INSTRUÇÃO "else"
Antes, conseguiu fazer o desafio anterior?
Usando a mesma montagem anterior (ENTRADAS), vamos fazer o LED alternar entre aceso e apagado APENAS quando o botão é apertado.
int temp = 1000; // tempo de espera
int pinLED = 11; // pino do LED
int pinBotao = 7; //pino do botão
int estado = 0; //estado do LED: 0 = apagado, 1 = aceso
void setup()
{ //inicia o bloco de instruções do setup
pinMode (pinLED, OUTPUT); // informa que o pinLED é saída
pinMode (pinBotao, INPUT); //informa que pinBotao é entrada
//pode ser usado qualquer pino
} //finaliza o bloco de instruções do setup
void loop() //inicia o bloco de instrucoes do loop
{ //inicia o bloco de instruções
if (digitalRead (pinBotao) == HIGH) //verifica uma condicao
{ //inicio da rotina de verificação SE ocorreu aperto do botão
if (estado == 0) //nova verificação do estado do LED
{
estado = 1; //muda a condição para aceso
digitalWrite (pinLED, HIGH); //acende o led
delay (temp); //tempo para soltar o botao
} //fim da verificação do estado apagado
else //instruções SE... OU... ENTAO
{ //esta condição será executada apenas SE a anterior não se verificou
//(isto eh, o LED estava em 1, aceso)
estado = 0; //muda a condicao para apagado
digitalWrite (pinLED, LOW); //apaga o LED
delay (temp); //tempo para soltar o botao
}
} //fim da rotina SE ocorreu aperto do botao
} //finaliza o bloco de instruções do loop
Percebeu como usar tabulação para afastar as linhas ajuda na visão do programa?
Palavras adicionadas ao vocabulário: else.
DESAFIO:
Explique o que acontece se você mantiver o botão apertado. Justifique na programação.