Início
/
Projetos Arduino
/
Projetos Squids
/
Básico
/
Projeto 02 - Led acende com push button pressionado (resistor pull-down)
Projeto 02 - Led acende com push button pressionado (resistor pull-down)
Angelo Luis Ferreira | 17/01/2024
Acessos: 70.656
Básico - Projeto 02
Botão (push button) liga led quando pressionado
Objetivo
Criar um circuito para ligar e desligar um led através de um botão de pressão (pushbutton). Enquanto o botão for mantido pressionado, o LED ficará ativado; caso contrário, o LED se apagará. Isso pode ser feito configurando o botão com um resistor pull-down, ou seja, com o resistor conectado ao GND (negativo).
Observação: Os botões de pressão (push button) apenas mudam seu estado quando pressionados, voltando ao seu estado original quando o botão é liberado. Neste projeto, teremos uma rotina para atribuir ao botão a função de ligar um componente eletrônico qualquer quando o botão for mantido pressionado, e desligar quando o botão estiver liberado.
Aplicação
Para fins didáticos e projetos gerais com arduino.
Componentes necessários
Referência
|
Componente
|
Quantidade
|
Imagem
|
Observação
|
Protoboard |
Protoboard 830 pontos |
1 |
|
No mínimo utilizar protoboard com 830 pontos
|
Jumpers |
Kit cabos ligação macho / macho |
1 |
|
|
Resistor |
Resistor
|
2 |
|
1 Resistor 150Ω (led vermelho ou amarelo)
1 Resistor 10KΩ (push button)
Se precisar usar outros valores, calcule o resistor apropriado para o led utilizado - Calcular Resistor ou utilize a tabela padrão Tabela de resistores para leds
|
Led 5mm |
LED 5mm |
1 |
|
1 LED alto brilho ou difuso (qualquer cor)
Você poderá utilizar também LEDs de 3 mm na cor que desejar.
|
Push Button |
Push button 6X6X5mm |
1 |
|
|
Arduino UNO R3 |
Arduino UNO |
1 |
|
Você poderá utilizar uma placa Arduino UNO original ou similar
|
Montagem do Circuito
Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.
Atenção
1. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.
1.1. Portanto, faça a conexão do Arduino no terminal positivo (anodo) e o GND no terminal negativo (catodo) do led.
1.2. Para evitar danos ao led é necessário a inclusão de um resistor no circuito. Como o resistor é um limitador da corrente elétrica no circuito, ele poderá estar conectado no anodo (terminal maior) ou no catodo (terminal menor) do led, tanto faz.
2. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Como calcular o resistor adequado para o led e Leds ligados em série e em paralelo.
Obs.: Resistores iguais ou superiores a 250 Ω poderão ser utilizados em LEDs de todas as cores para um circuito com tensão igual ou inferior a 5V.
Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω
3. Monte o botão (push button) com resistor pull-down (resistor conectado no GND). Desta forma, quando o botão estiver pressionado, o Arduino retornará "HIGH" ou "1". Leia mais em Resistores Pull-down e pull-up e Como usar push button com Arduino (programação)
Obs.: Os resistores pull-up e pull-down garantem um nível lógico estável quando, por exemplo, o botão não está pressionado. Geralmente utiliza-se um resistor de 10KΩ para esse propósito. A seguir é exibida a ligação desses resistores no circuito para leitura de tecla do botão:
4. A montagem abaixo foi realizada em um protoboard com linhas de alimentação não contínuas, onde acrescentamos jampers para a ligação. Verifique se o seu protoboard possui linhas de alimentação contínuas ou separadas - saiba mais em protoboard
Código do projeto (Sketch)
Faça o dowload e abra o arquivo projeto02.ino no IDE do Arduino: DOWNLOAD - projeto02.ino
Ou se preferir, copie e cole o código abaixo no IDE do Arduino:
/*******************************************************************************
*
* Projeto 02 – Push button liga led quando pressionado (pull down)
* http://squids.com.br/arduino
*
*******************************************************************************/
const int ledPin = 2; //led no pino 2
const int Botao = 12; //botao no pino 12
int estadoBotao; //Variavel para ler o status do pushbutton
void setup(){
pinMode(ledPin, OUTPUT); //Pino do led será saída
pinMode(Botao, INPUT); //Pino com botão será entrada
}
void loop() {
estadoBotao = digitalRead(Botao); //le o estado do botão - HIGH OU LOW
if (estadoBotao == HIGH) { //Se botão estiver pressionado (HIGH)
digitalWrite(ledPin, HIGH); // acende o led do pino 2.
}
else { //se não estiver pressionado (LOW)
digitalWrite(ledPin, LOW); //deixa o led do pino 2 apagado
}
}
Depois, faça a verificação e o upload para o microcontrolador.
Vídeo
Como o projeto deve funcionar
1. Iniciando o programa, o led permanecerá apagado.
2. Ao pressionar o botão o led se acenderá, mantendo-se aceso até você liberar o botão.
3. Ao liberar o botão o led se apagará, mantendo o seu estado inicial.
Explicando o Código do Projeto
1. Primeiro declaramos as constantes e as variáveis do projeto.
1.1. Observe que utilizamos constantes e variável tipo "int". Veja na tabela abaixo as diferenças nos tipos de constantes e variáveis:
Tipo |
Valores Válidos para Variáveis e Constantes
|
char |
letras e símbolos: 'a', 'b', 'H', '^', '*','1','0' |
int |
de -32767 até 32767 (apenas números inteiros) |
float |
de -3.4 x 1038 até +3.4 x 10+38com até 6 dígitos de precisão (2 casas depois da vírgula) |
double |
de -1.7 x 10308 até +1.7 x 10+308com até 10 dígitos de precisão |
1.2. A constante ledPin se refere ao Led que deverá estar conectado à porta digital 2 do Arduino.
1.3. A constante Botao se refere ao push button que deverá estar conectado à porta digital 12 do Arduino.
1.4. Declaramos estadoBotao como uma variável tipo "inteira". Esta variável vai armazenar as leituras do status (se HIGH ou LOW) do push button.
2. Através da strutura void setup(), definimos:
2.1. Define ledPin como saída do controlador Arduino (OUTPUT) conectado ao pino 2.
2.2. Define Botao como entrada do controlador Arduino (INPUT) conectado ao pino 12.
3. Através da estrutura void loop(), obtemos:
3.1. Primeiro fazemos a leitura do botão através função digitalRead(Botao), determinando se está pressionado (HIGH ou 1) ou se está liberado (LOW ou zero), armazenando esta informação na variável estadoBotao.
3.2. Se o botão estiver pressionado, através do comando if (estadoBotao==HIGH), determinamos que:
3.2.1. Se verdadeiro, o led será aceso através da função digitalWrite(ledPin, High).
3.2.2. Caso contrário, o led será ou permanecerá apagado de acordo com a função digitalWrite(ledPin, LOW).
Documentação de Referência Arduino
Escopo de Variáveis e Qualificadores
variáveis Arduino - escopo e qualificadores
const
escopo
Tipos de Dados
Tipos de dados usados pelo Arduino
int
Sketch - estrutura
loop()
setup()
Constantes
HIGH | LOW
INPUT | OUTPUT
Funções - Entradas e Saídas Digitais
digitalRead()
digitalWrite()
pinMode()
Estruturas de Controle
if
else
Operadores de Comparação
== (igual a)
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários