Início
/
Projetos Arduino
/
Squids Hub
/
Básico
/
Hub 003 - Quem bater primeiro o botão acende o led - Arduino
Hub 003 - Quem bater primeiro o botão acende o led - Arduino
Angelo Luis Ferreira | 28/06/2019
Acessos: 4.202
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 |
|
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