Nesse artigo você aprenderá a desenvolver um Placar para Air Hockey utilizando Portas Lógicas. A proposta é utilizar somente circuitos combinacionais e circuitos sequenciais, abrindo mão do uso de microcontroladores. Se isso é novidade para você, confira antes o artigo explicando o que são porta lógicas 😉
A eletrônica que desenvolveremos nesse post não se limita ao famoso jogo de Air Hockey, pode ser alterado para aplicação em outros jogos onde haja a necessidade de marcação de pontos para dois times ou jogadores, como bilhar, tênis de mesa, pebolim, entre outros.
O que é Air Hockey?
É um jogo de mesa em que dois jogadores usam rebatedores para acertar um disco de plástico em uma mesa. O objetivo é marcar pontos ao enviar o disco para o gol do adversário, enquanto se defende contra os ataques do outro jogador. O jogo é dinâmico e requer reflexos rápidos e habilidades motoras precisas. É um jogo popular em arcades, salões de jogos e até em algumas residências pessoais.
Materiais Necessários:
01 x Fonte Ajustável Protoboard
01 x CD4026
01 x 74HC00
01 x 74HC08
01 x 74HC14
01 x 74HC3
02 x Display 7 segmentos catodo comum
02 x Chave táctil
02 x Chave micro switch com haste
16 x Resistor 330Ω
04 x Resistor 10kΩ
Dica: Kit de resistores com 20 valores e 400 unidades no total aqui!
Entendendo o Circuito Eletrônico Aplicado
O nosso objetivo é desenvolver um Placar para Air Hockey utilizando Portas Lógicas. Algumas regras precisam ser preestabelecidas. Vamos lá:
- Dois displays de 7 segmentos indicam quantos gols foram feitos pelos jogadores, aqui chamados de “PLAYER 1” e “PLAYER 2”;
- Ao atingir o placar de 9 (nove) gols, uma sinalização visual deve indicar quem foi o jogador vencedor e, mesmo que ocorram mais gols, a contagem deve ficar congelada;
- Deve haver um reset para destravar esse congelamento do placar. Mas atenção, esse reset só deve funcionar caso o placar de 9 gols seja atingido, tanto pelo PLAYER 1 quanto pelo PLAYER 2;
- Também é importante ter um reset geral, caso os jogadores desistam da partida antes de atingir o placar final. Chamaremos de “RESET MASTER”.
O CI que faz a contagem dos gols e a interface com o display 7 segmentos é o CD4026. Vamos entender um pouco sobre ele.
O CI CD4026 é um contador digital com decodificador e display de sete segmentos integrado. Ele é usado para contar pulsos de entrada, como em contadores de eventos, frequência, tempo, entre outros. O CD4026 é capaz de contar de 0 a 9, e possui saídas de decodificação para cada dígito. Mais informações estão disponíveis no datasheet
Uma vez que o contador registra e memoriza os eventos (gols), ele decodifica para o display de 7 segmentos nos pinos 6, 7, 9, 10, 11, 12 e 13. A ligação com o display deve ser realizada com resistores em série, haja visto que os segmentos são LEDs e que necessitam de limitadores de corrente elétrica.
É necessário um resistor de 330Ω para cada segmento. São 02 displays com 7 segmentos cada, portanto, 14 resistores.
Cada micro switch fica posicionado estrategicamente dentro do gol, onde o disco obrigatoriamente irá passar. De maneira cruzada, onde o micro do jogador 1 fica no gol do jogador 2 e vice-versa.
Sua ligação deve, no mínimo, conter um resistor de 10kΩ na função de pull-down. Quer entender mais sobre o pull-down? Entendendo o pull-up e pull-down no Arduino.
Outros recursos podem ser necessários, a depender da ligação, modelo de switch ou outras características do sensor utilizado para detectar a passagem do disco.Uma dica é montar um circuito para debounce, caso a contagem suba mais de um incremento no placar quando o disco passa pelo switch uma vez. Esse efeito de bounce (quicar) é quando um CI interpreta múltiplos acionamentos quando, na verdade, o evento deveria acontecer somente uma vez.
É relativamente comum acontecer quando utilizamos chaves mecânicas. Esse tema é amplo e pode ser abordado em outro post. Mas para não ficar à deriva, sugiro a leitura Debounce, o que é e como resolver via software.
Também recomendo esse material para leitura, em inglês How to Implement Hardware Debounce for Switches and Relays When Software Debounce Isn’t Appropriate.
Caso queira um artigo específico sobre esse assunto, deixe nos comentários!
Uma vez que já possuímos um CI responsável pela contagem. Quem o faz parar quando a contagem chega a 9?
Sem um “freio”, a contagem irá resetar, ou seja, voltar a 0 e continuar ciclicamente. Contudo, existe um sinal no pino 5 do CI CD4026 chamado Carry Out (CO) que pode nos ajudar. Esse sinal vai para nível lógico baixo (0V) quando a contagem está em 9, e volta para nível lógico alto (5V) quando o contador reseta, apresentando o número 0 no display.
No vídeo abaixo você pode conferir a Contagem do placar e visualização do sinal Carry Out:
Esse sinal “CO” é crucial para a nossa demanda. Ele tanto serve para dizer que um jogador ganhou quanto para pausar o placar.
Tudo bem, mas como trabalhar nesse sinal para que supra as necessidades do projeto?
Podemos aproveitar e utilizar esse sinal dos dois contadores de placar, tanto PLAYER 1 quanto PLAYER 2, indicar visualmente que aconteceu uma vitória e, inibir o CD4026 de contar. Isso mesmo! Através do pino 2 INHIBIT podemos inibir a contagem, então mesmo que haja Clock no pino 1, o contador irá ignorar.
Contudo, como visto no vídeo, o sinal CO (pino 5 do CD4026) vai para nível baixo quando o contador atinge o valor 9. Então, quando um jogador ganha, o indicador visual iria apagar. Por essa razão utilizaremos o CI 74HC14. Ele irá inverter o sinal lógico “CO”, acendendo o LED quando atingir o valor 9.
Também aproveitando esse sinal “Carry Out”, podemos utilizar a porta lógica NAND, que em síntese, tem a saída em nível lógico alto assim que qualquer uma das entradas estiver em nível lógico baixo. Dessa forma, a saída no pino 3 do CI 74HC00 irá para nível lógico alto quando algumas das entradas, pinos 1 ou 2, ligadas aos Carry Out dos contadores 1 e 2, respectivamente, sinalizar que um jogador ganhou. Esse sinal da saída da porta inversora será chamado de “ATINGIU”.
Nesse ponto, já temos o nosso contador com limite. Mas assim ele irá travar. O que fazer?
Travar um sistema digital, vias de regra, é indesejável. Porém aqui é intencional. Queremos mesmo que o circuito “trave” ou pare quando o jogo acabar. Mas seria muito desinteressante ter que religar o sistema a cada nova partida. Para resolver, vamos inserir os “RESETS”.
O CI CD4026 possui um pino específico para reiniciar sua contagem, é o pino 15 “MR”.
Nesse ponto, já temos o nosso contador com limite. Mas assim ele irá travar. O que fazer?
Travar um sistema digital, vias de regra, é indesejável. Porém aqui é intencional. Queremos mesmo que o circuito “trave” ou pare quando o jogo acabar. Mas seria muito desinteressante ter que religar o sistema a cada nova partida. Para resolver, vamos inserir os “RESETS”.
O CI CD4026 possui um pino específico para reiniciar sua contagem, é o pino 15 “MR”. Para trabalhar normalmente, o nível lógico nesse pino deve ser baixo (0V). Se o nível lógico for alto (5V), a contagem retorna à zero.
Necessitamos de uma lógica onde, o placar só irá resetar quando houver um vencedor e um botão reset for pressionado, ou quando o botão master reset for pressionado. Contido nesse texto está a expressão booleana necessária em nosso circuito. Onde podemos extrair:
RESET = A.B + C
Após ter dividido em partes e compreendido suas funções, temos o resultado esperado. O Placar para Air Hockey Utilizando Portas Lógicas.
Resultados
Caso o você queira outros valores de resultado final, que não sejam o 9 ,pode utilizar-se de circuitos combinacionais, interpretar o valor de nível lógico da saída do contador e utilizar a saída para resetar os CD4026, ao invés de utilizar o Carry Out.
E então, gostou de conhecer o placar para Air Hockey Utilizando Portas Lógicas?
Deixe um comentário abaixo dizendo o que achou e em qual aplicação você usaria ou modificaria. Para mais conteúdos como este, acesse nosso blog. Até mais!