Básico - Hub 002

Três leds e 4 botões (push buttons)

 

Sugerido por: Sara Manoelle Santos Silva  

Objetivo

Tenho 4 botões e 3 LEDs, preciso que ao pressionar qualquer um dos 4 botões um LED acenda (no nosso exemplo o led vermelho),  ao pressionar dois dos 4 botões outro LED acenda (no nosso exemplo o led amarelo) e ao pressionar três dos 4 botões o terceiro LED acenda (no nosso exemplo o led verde). Finalmente, ao pressionar os 4 botões ao mesmo tempo, todos leds acendem.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho 1  
Led 5mm

LED 5mm

3

No projeto utilizamos 1 led vermelho, 1 led amarelo e 1 led verde.

Você também poderá utilizar LEDs de 5 ou 3 mm nas cores que desejar, alto brilho ou difuso.

Resistor

Resistor

3

1 Resistor 100Ω e 2 Resistores 150Ω (ou superiores)

Se precisar usar outros valores, calcule o resistor apropriado para o led utilizado - Calcular Resistor ou use a Tabela Resistor para Leds

Push Button

Push button 6X6X5mm

4  
Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

 

Referência

Projeto 02b - Led apaga com push button pressionado (pull-up interno do Arduino)

Código do Projeto (Sketch)

Faça o dowload e abra o arquivo hub001.ino no IDE do Arduino:

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

/*******************************************************************************
*
*    HB 02 - Ascendendo leds com 4 botões
*        Sugerido por Sara Manoelle Santos Silva
 *         http://squids.com.br/arduino
*
*******************************************************************************/
byte led[3] = {3, 4, 5}; // define os pinos Arduino para os leds
byte button[4] = {8, 9, 10, 11}; //define os pinos Arduino para os botões
byte x, y;

void setup(void) {
  Serial.begin(9600);  
  for (byte i=0;i<4;i++) {
    pinMode(button[i], INPUT_PULLUP); // define os botões como pull up interno
  }
  for (byte i=0;i<3;i++) {
    pinMode(led[i], OUTPUT);
  }
}


void loop(){
  x = 0, y = 0;
  for (byte j=0;j<4;j++) {
    x = digitalRead(button[j]); // define o valor de x (0 se pressionado e 1 se desligado)
    y = y + x;   // soma os valores de x para os 4 botões
  }
  Serial.println(y); // mostra o valor de x no monitor serial
  delay(100);
  acenderLeds(y); // chama a função acenderLeds e passa o valor de y
}  

void acenderLeds(byte seletor) {
  
  // apaga todos leds
   for (byte k=0;k<3;k++) {
      digitalWrite(led[k],LOW); // apaga todos os leds
   }
  
  //seleciona qual led irá acender
  switch (seletor) {
    
   case 3: // 1 botão acionado      
     digitalWrite(led[0],HIGH); // acende o led vermelho
   break;

   case 2: // 2 botões acionados
     digitalWrite(led[1],HIGH); // acende o led amarelo
   break;

   case 1: // 3 botões acionados
     digitalWrite(led[2],HIGH); // acende o led verde
   break;

   case 0: // 4 botões acionados
       for (byte k=0;k<3;k++) {
          digitalWrite(led[k],HIGH); //acende todos leds
        }
   break;
  }
} 

Observação: Acesso o monitor serial do IDE do Arduino para verificar os valores de y quando você pressionar 1 ou mais botões. Isto é importante para você entender bem o sketch utilizado.

Demonstração

Desafios

Com base neste projeto, resolva o seguinte desafio:

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Squids Arduino News

Básico - Projeto 99 Medir e exibir a intensidade do som (VU meter) em um display LCD Objetivo O objetivo deste projeto é criar um dispositivo para aferir a intensidade sonora e mostrar essa int...

Intermediário - Projeto I14 Usando qualquer controle remoto com Arduino Objetivo Neste tutorial vamos mostrar como utilizar qualquer Controle Remoto Infravermelho e um fotorreceptor IR para con...

Básico - Projeto 98 Módulo Matriz de Led rítmico - MAX7219 Objetivo O objetivo deste projeto é criar um circuito para fazer com que os leds de uma matriz de leds pisquem de acordo com o ritmo d...

Básico - Projeto 97 Leds piscam de acordo com o som Objetivo O objetivo deste projeto é criar um circuito para fazer piscar vários leds de acordo com o ritmo de uma música. Para isso, vamos uti...

Desafio 89 - Projeto I13 Dez efeitos de iluminação com controle remoto Com base no projeto I13 - Como usar o Controle Remoto Infravermelho com Arduino resolva o seguinte desafio: 1. Com base...

Outros artigos

Mais: Projetos Básicos Projetos Intermediários Desafios Básico

Você está preparado?

Topo