ÍNDICE DE CONTEÚDO
Introdução
O esporte preferido dos brasileiros é jogar futebol, e é comum ter grupos de amigos que jogam juntos a famosa pelada de final de semana. Um dos problemas que sempre tive nesses momentos foi o controle do tempo, quem tá jogando sempre acha que o tempo passou muito rápido, principalmente quando se está perdendo. Usando o Arduino, vamos criar neste artigo um cronômetro acionado por controle remoto que emite sinais sonoros no início, faltando 1 minuto para o fim da partida e ao fim desta. O cronômetro fica visível a todos, tirando assim qualquer dúvida em relação ao tempo de jogo.
Modelo do cronômetro com Arduino
Este projeto foi executado com os seguintes componentes:
-
1 Arduino Uno;
-
4 displays de 7 segmentos Anodo Comum;
-
4 transistores BC327;
-
1 CI 74HC595 (registrador de deslocamento) para controlar os displays;
-
2 LEDs;
-
7 resistores de 100Ω, 5 de 1KΩ e 1 de 560Ω;
-
1 módulo de RF formado por um receptor e um controle com 4 botões;
-
1módulo de 1 relê;
-
1 sirene;
-
1 bateria de 12V.
Um diagrama de blocos que demonstra o funcionamento do projeto pode ser visto a seguir:
Para controlar os displays foi usado o CI 74HC595, um registrador de deslocamento usado como conversor serial – paralelo para controlar os 7 segmentos de 4 displays com poucos pinos do Arduino. O CI 74HC595 envia o sinal para cada segmento dos displays, enquanto o Arduino controla que display irá acender. Esse método é conhecido como varredura e pode ser mais bem compreendido nesta matéria do Henrique Puhlmann.
Para executar as funções do cronômetro, foi usado um módulo de comunicação sem fio, que foi adquirido pelo site chinês Banggood.
O módulo é composto de um receptor e um transmissor. O receptor tem 7 pinos, que são:
- 1 – +5V;
- 2 – GND;
- 3 – D0;
- 4 – D1;
- 5 – D2;
- 6 – D3;
- 7 – VT.
Os pinos de D0 a D3 vão para nível alto quando um dos botões do controle é acionado, já o botão INT vai para nível alto quando qualquer botão é acionado, podendo ser usado para interrupção externa.
O transmissor é um controle com quatro botões e uma antena.
Para toque da sirene utilizamos um relé, cujo acionamento pode ser feio por meio de um circuito com um transistor ou pode ser usado um módulo pronto. Ambos podem ser vistos nesta matéria do Fabio Souza.
A bateria de 12V foi utilizada para alimentar o Arduino pelo conector jack e a sirene. Foi escolhida uma bateria por ser um projeto móvel e por falta de uma tomada no local de instalação, porém a bateria pode ser substituída por uma fonte de 12V.
Projeto – Hardware
Faça o download do circuito do projeto do cronômetro com Arduino abaixo.
Projeto do circuito do projeto do cronômetro com Arduino.Projeto – Firmware
Um detalhe importante na programação é a utilização de uma biblioteca para usar o timer do Arduino, o qual gera uma interrupção a cada estouro de contagem, e assim é feito o cálculo do tempo no Arduino. O gerenciamento do tempo de jogo e do tempo que a sirene fica ativada é feito usando-se um timer. A biblioteca utilizada foi retirada do site do Arduino, onde pode-se ver todos os detalhes de seu funcionamento.
O programa executado no Arduino foi todo comentado para facilitar o seu entendimento e pode ser visto neste Sketch Cronômetro com Arduino.
O projeto foi feito para um tempo de jogo de 10 minutos, porém pode ser modificado facilmente mudando o valor da definição TEMPO_JOGO.
Projeto Final
Depois de pronto, foi adaptada uma caixa para finalizar a montagem do projeto. Algumas imagens do projeto montado podem ser vistas abaixo:
Referências – Cronômetro com Arduino
https://embarcados.com.br/displays_led_7_segmentos/
https://www.banggood.com/4-Channel-Wireless-RF-Remote-Control-Transmitter-Receiver-Module-p-912951.html
https://embarcados.com.br/controle-uma-lampada-com-arduino/
Biblioteca Timer1
Procuro um contador para uma ação promocional da seguinte forma:
alguem poderia entrar em contato comigo? Pagarei pelo serviço!
[email protected]
e possivel trocar esse 4 displays por 1 display TM1637 ?
Bom dia Igor.
É possível sim. Vc pode usar os pinos do shift register para controlar o TM1637. Só vai precisar adicionar a lib e ajustar o código.
O Arquivo do Sketch não tem acesso, diz proibido como posso ver.
Olá Josemar, estou logado mas não consigo baixar o sketch. Pode me enviar no e-mail?
[email protected]
Olá! Gostaria de ter acesso ao esquema e ao programa desse cronometro. Abraços!
Willians, o esquema e código do projeto estão no artigo. Teve algum problema para baixar os arquivos?
Boa tarde Josemar!
Sim, estou tentando acessar os links, mas vem uma mensagem dizendo que eu não tenho autorização para acessar os arquivos.
Entendi.
Tentou baixar quando estava logado no site?
Se não tem cadastro, crie e tente baixar. Se der algum erro avisa.
Já me cadastrei, e estou logado. Mas assim mesmo dá esse erro
Entendi.
Vou avisar ao pessoal sobre esse problema.
Deixa seu e-mail aqui que lhe envio os arquivos.
Parabéns pelo projeto amigão, só me tire uma duvida tentei simular no proteus mas não deu certo os display ficam acessos direto com os números 88 nos 2 displays duplos anodo comum. Obrigado pela atenção.
Ola Jorge.
Varias coisas podem gerar esse problema na simulação do proteus. Um primeiro teste seria ver se o código do arduino está sendo simulado/rodando.
Monte uma código simples, só para piscar um led e adicione ao seu circuito e veja se funciona.
Olá Jorge! Será que você poderia me disponibilizar o esquema e o sketch? Meu email: [email protected]. Abraços!!
bom dia, gostaria de saber se você criou alguma plaquinha para colocar os componentes, ou foi ligando so os fios mesmos? se fez algum circuitinho teria como me mostrar o modelo? obrigado.
Criei um circuito e montei a placa sim, porem não tenho mais os arquivos da placa.
boa tarde, posso usar o cd4511 mo lugar do 74HC595
Não é possível, os componentes tem funções diferentes.
O CD4511 é um decodificador BCD para display de 7 segmentos enquanto o 74HC595 é um shift register.
boa tarde Josemar Alves, gostaria de receber o link do codigo. obrigado
Boa tarde.
Conforme comente, alterei o código do projeto para deixar o tempo configurável. Nessa nova versão, se ligar o sistema com o botão PLAY pressionado, o sistema entra em modo configuração, onde é possível ajustar o tempo de jogo.
Subi o código no github para possa interessar:
https://github.com/josemar-bool/CronometroFutebolArduino
Abraço.
Ola Josemar muito bom este seu artigo do cronometro. Gostaria de usar ele e queria te perguntar uma coisa. Seria possível usar a tecla que esta sobrando do controle remoto para ser usada . logo apos o sistema ser resetado ao ser acionada no caso o Botão Stop entrar aberto o tempo de contagem e a gente poder escolher qual o tempo que preciso que ele conte, podendo ser o máximo de 59:00 minutos. Uma vez escolhido o tempo e mostrado no display podemos acionar a tecla Play e tudo continua como era antes. Se for possível teria como ajudar… Leia mais »
Olá Henrique, que bom que gostou do projeto.
Uma pergunta, vc precisa de tempo fixo mas que seja diferente dos 10 minutos do projeto atual?
Se sim, é só vc mudar o tempo da partida no código, assim vc escolhe o tempo que quer e o sistema irá funcionar normalmente.
Se for precisar ajustar o tempo para cada partida, aí vai precisar mexer no código mesmo. Eu fiz uma modificação certa vez que talvez resolva seu problema. Me manda um e-mail que eu vou procurar o código é caso te ajude eu envio.
Email: [email protected]
bom dia, te mandei um email depois da uma olhada la por favor.