Básico - Projeto 02b

Botão (push button) desliga led quando pressionado (pull up interno)

Objetivo

Criar um circuito para ligar e desligar um led através de um botão de pressão (pushbutton), que se estiver pressionado apaga o led, se não mantém o led aceso.

Observação 1: 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 desligar um componente eletrônico qualquer quando o botão for pressionado, e ligar quando o botão estiver liberado.

Observação 2: Neste projeto veremos como habilitar o resistor pull-up interno do Arduino ligado ao VCC. Desta forma, podemos utilizar um botão (push button) sem precisarmos de um resistor, normalmente de 10K, para garantirmos os níveis lógicos Alto (HIGH, 5V) ou baixo (LOW, 0V) estáveis.

Aplicação

Para fins didáticos, resistor pull-up interno e projetos gerais com o microcontrolador Arduino.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos

Comprar

1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho

Comprar

1  
Resistor

Resistor

Comprar

1

1 Resistor 150Ω (vermelho, laranja ou amarelo)

ou

1 resistor 100Ω (verde ou azul)

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

Comprar

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

Comprar

1  
Arduino UNO R3 Arduino UNO Original

Comprar

 

Arduino UNO Similar

Comprar

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, 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. (Obs.: Resistores 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) sem o resistor, pois através da programação vamos habilitar o resistor pull-up interno do arduino. Desta forma, quando o botão estiver pressionado, o Arduino retornará "LOW" ou "0". Assista o vídeo Arduino: Botão e Resistor de Pull Up Interno


Obs.: Os resistores pull-up e pull-down garantem um nível lógico estável quando por exemplo uma tecla não está pressionada. 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:

Entradas-e-Saídas-digitais-Arduino-pull-up-pull-down

Atenção: Observe que neste projeto não utilizaremos o resistor de 10K pois vamos habilitar o resitor pull-up interno do Arduino através da programaçã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 projeto02b.ino no IDE do Arduino:

Observação: O sketch abaixo serve também para o push button com resistor ligado em pull down, veja o projeto: Projeto 02 - Led acende com push button pressionado (resistor pull-down)

Ou se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
*
*    Projeto 02b – Push button desliga led quando pressionado (pull up - interno)
*                   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_PULLUP); //Habilita o pull up interno do Arduino
}

void loop(){
    estadoBotao = digitalRead(Botao); //le o estado do botão - HIGH OU LOW

    if (estadoBotao == HIGH){ //Se botão não estiver pressionado (HIGH)
        digitalWrite(ledPin, HIGH); // mantêm acesso o led do pino 2.
    }
    else{ // ao pressionar o botão (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 irá ficar ligado (aceso).

2. Ao pressionar o botão o led se apagará, mantendo-se desligado até você liberar o botão.

3. Ao liberar o botão o led se acenderá novamente, 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 microcontrolador 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_PULLUP) conectado ao pino 12.

2.2.1. INPUT_PULLUP habilita o resistor pull-up interno do Arduino, eliminando a necessidade de colocarmos um resistor de 10K ligado ao VCC (5V).

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 (LOW ou 0) ou se está liberado (HIGH ou 1), armazenando esta informação na variável estadoBotao.

3.2. Através do comando if (estadoBotao==HIGH), determinamos que:

3.2.1. Se verdadeiro, o led permanecerá aceso através da função digitalWrite(ledPin, High), mantendo o seu estado inicial.

3.2.2. Caso contrário, o led será  apagado de acordo com a função digitalWrite(ledPin, LOW). Isto acontece quando o botão for pressionado retornando LOW, ou "0".

Desafios

Com base neste projeto, resolva o seguinte desafio:

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Squids Arduino News

Desafio 86 - Projeto hub009 Piscar led de acordo com o potenciômetro usando millis() Com base no Hub 009 - Piscar led de acordo com o potenciômetro em intervalos de 0.5 a 3 segundos - Arduino r...

Básico - Hub 009 Piscar led no intervalo de 0.5 a 3 segundos conforme potenciômetro   Sugerido por: Jhulio Cesar Objetivo Faça com que um LED pisque em função da posição do potenciômetro, ...

Desafio 85 - Projeto 95 Acionando um motor DC por um sensor de som Com base no Projeto 95 - Usando o sensor de som para acender e apagar um led - Arduino resolva os seguintes desafios: 1. A...

Operador Ternário na programação com Arduino Objetivo Nesta dica vamos mostrar como usar o operador ternário na programação com Arduino. O operador ternário é uma alternativa elegante e compacta...

Básico - Projeto 95 Acender e apagar um led com som Objetivo O objetivo deste projeto é criar um circuito para acender e apagar um led batendo palmas. Para isso, vamos utilizar um módulo sensor...

Outros artigos

Mais: Desafios Básico Dicas de Software Projetos Básicos Circuitos básicos Projetos Intermediários

Você está preparado?

Topo