Interruptor de LED
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.
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // Projeto 5 - <span style="font-weight: 400">Interruptor de luz</span> 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.