Hub 002 - Acendendo leds com 4 botões

Básico - Hub 002

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

 

Sugerido por: Sara Manoelle Santos Silva ENVIAR SUGESTÃO 

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

Push Button

Push button 6X6X5mm

4  
Arduino UNO Arduino UNO R3 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:  DOWNLOAD - hb002.ino

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:  Desafio 44

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

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores