Projeto 5 – Interruptor de luz

Neste projeto, veremos que também é possível acionar dispositivos através de interação humana. Agora alguns pinos serão porta de entrada, e não só saída como eram os projetos até aqui.

Funcionamento projeto 5

O funcionamento deste projeto mostra como acionar um LED pressionando uma chave push-button (botão). Isso exemplifica que o Arduino pode receber ou ler informações externas e tomar ações a partir deles.

Uma chave push-button funciona como um contato que abre e fecha, sendo assim, uma chave possui dois valores, 0 ou 1, aberto ou fechado. Conectando uma chave a uma porta do Arduino podemos ler o valor 0 ou 1 da chave e assim tomar uma ação, que no caso do nosso exemplo será acionar o LED. Por só ter dois valores possíveis, utilizaremos uma das portas digitais da placa.

O botão, quando pressionado, faz contato entre um lado e outro dele. Quando esse contato é fechado, essa corrente elétrica “entra” na placa e ela percebe que o botão foi pressionado. Ao escrevermos o programa, decidiremos o que fazer com essa informação.

Material necessário

1x LED Vermelho 5mm
1x Resistor 220 ohm
1x Chave Táctil Push-button
1x Protoboard 400 pontos
5x Jumper Macho-macho
1x Cabo USB
1x Placa Uno

Montagem do circuito

A chave táctil push button deve ser montada com dois terminais acima da cavidade central da protoboard e os outros dois abaixo. Um terminal da chave vai no pino 7 e outro no GND. No caso deste projeto o pino do LED é uma saída digital e o pino da chave é uma entrada digital.

Programa Projeto 5 – Interruptor de luz

Para ler o valor digital de um botão, primeiro temos que configurar o pino como entrada utilizando pinMode(botao, INPUT_PULLUP); e então fazer a leitura com digitalRead(botao); Sendo o valor da leitura 0 ou 1 (LOW ou HIGH), controlamos o LED de acordo. Veja o programa completo abaixo:

//   Projeto 5 - Interruptor de luz

int botao = 7;
int led = 13;
bool estadoLed = 0;

void setup()
{
  pinMode(botao, INPUT_PULLUP); // define o pino do botao como entrada "INPUT"
  pinMode(led, OUTPUT);
}

void loop()
{
  if(digitalRead(botao) == LOW) // Se o botão for pressionado
  {
    estadoLed = !estadoLed; // troca o estado do LED
    digitalWrite(led, estadoLed);
    while(digitalRead(botao) == LOW);
    delay(100);       
  }    
}

Possíveis erros

Caso o projeto não funcione, verifique alguns dos possíveis erros:

  • Verifique se os jumpers estão na mesma coluna dos terminais dos componentes, fazendo assim a conexão;
  • Verifique se os jumpers estão ligados nos pinos corretos no Arduino;
  • Verifique se o LED não está conectado invertido;
  • Verifique se os pinos do botão estão bem inseridos na protoboard;
  • Verifique se o código carregou na placa através da IDE Arduino.

Desafios

Veja abaixo alguns desafios que você pode tentar!

  • Monte o circuito de uma maneira alternativa usando outros furos e posições na protoboard;
  • Adicione mais uma chave táctil push button e modifique o código para ligar o LED com uma chave e desligar com a outra.

Alguma dúvida, comentário ou algo que queira acrescentar? Entre no tópico do nosso fórum!

{"cart_token":"","hash":"","cart_data":""}