Hub 003 - Quem bater primeiro o botão acende o led - Arduino

Básico - Hub 003

Quem pressionar primeiro o botão responde (4 participantes)

 

Sugerido por: Eduardo Leal ENVIAR SUGESTÃO

Objetivo

Quero realizar uma competição entre 4 equipes (lvermelho, amarelo, verde e laranja) com perguntas e respostas . Cada equipe teria o seu botão. Quando ao termino da pergunta a equipe que apertar primeiro o botão e ascender seu LED impede as demais de fazerem isso. E um botão de reset para que ao termino de cada rodada voltasse ao estado inicial para a próxima rodada de pergunta.

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

4

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

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

Resistor

Resistor

4

4 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

5  
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 hub003.ino no IDE do Arduino:  DOWNLOAD - hb003.ino

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

/*******************************************************************************
*
*    HB 03 - Quem bater primeiro
*      Sugerido por Eduardo Leal
*     http://squids.com.br/arduino
*
*******************************************************************************/

byte led[4] = {3, 4, 5, 6}; // define os pinos Arduino para os leds
byte button[4] = {8, 9, 10, 11}; //define os pinos Arduino para os botões competição
byte resetButton = 12; // define o botão do reset

 
void setup(void) { 
  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<4;i++) {
    pinMode(led[i], OUTPUT); // define os leds como saída
  }
  pinMode(resetButton, INPUT_PULLUP); // define o botão reset como pull up interno
}
 
void loop(){
   
  for (byte j=0;j<4;j++) {
    if (!digitalRead(button[j])) {
      delay(100);
      acenderLeds(j); // chama a função acenderLeds() e passa o valor de j
      resetar(); // chama a função resetar() 
    }
  }
}
 
void acenderLeds(byte seletor) {
    
  //seleciona qual led irá acender
  switch (seletor) {
     
   case 0:  // jogador 1
     digitalWrite(led[seletor],HIGH); // acende o led vermelho
   break;
 
   case 1: // jogador 2
     digitalWrite(led[seletor],HIGH); // acende o led amarelo
   break;
 
   case 2: // jogador 3
     digitalWrite(led[seletor],HIGH); // acende o led verde
   break;

   case 3: // jogador 4
     digitalWrite(led[seletor],HIGH); // acende o led laranja
   break;
  }
}

void resetar() {
  // loop vazio faz com que o programa interropa o processo até sair da condição, ou seja, pressionar o botão reset
  while (digitalRead(resetButton)) {
      } 

  // apaga todos leds após pressionar o botão reset
  for (byte k=0;k<4;k++) {
    digitalWrite(led[k], LOW);
  }       
}

Demonstração

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

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores