Básico - Hub 003

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

 

Sugerido por: Eduardo Leal

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

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

Compartilhe:

Doações

Contribua pra manter o site online :)

Inscreva-se no canal Squids

Você está preparado?

Squids Arduino News

Desafio 82 - Projeto 92 Relógio digital com temperatura, umidade e datas Com base no projeto Projeto 92 - Criando um relógio digital com OLED SSD1306, módulo DS3231 e Arduino resolva os seguin...

Básico - Projeto 92 Criando um relógio digital com Oled SSD1306 - bibliotecas Adafruit Objetivo O objetivo neste projeto é criar um relógio digital usando um display OLED junto com o Real Time ...

Desafio 81 - Projeto I09 Controlando 2 motores com driver L9110s (menu via display LCD) Com base no projeto I09 - Motores DC com Driver Ponte H L9110 e Arduino - Controle de 4 velocidades pelo ...

Intermediário - Projeto 09 Motores DC com driver ponte H L9110s e Arduino - 4 velocidades Objetivo Neste tutorial vamos mostrar como controlar a velocidade de 2 motores CC (corrente contínua) a...

Básico - Hub 008 Usar o módulo display 4 dígitos 74HC595   Sugerido por: Tim Santos Objetivo O objetivo é adaptar o  Projeto 63 - Usando o módulo TM1637 (display 4 dígitos) com Arduino e u...

Outros artigos

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

Topo