Bom dia ,
Obrigado por postar o código em arquivo anexado.
Informe o link do site das bibliotecas usadas, para que ao testar seu código não usemos bibliotecas
erradas ou de versões diferentes da suas.
Informe também qual arduino está usando.
È importante fornece o maior numero possível de informações pois que está te ajudando não
conhece o contexto total do seu projeto.
Este projeto é seu ou você copiou da web?
RV mineirin
Ola.
Não entendi bem a ideia.
Vamos supor que seja:
(botão/sensor/entrada/pulso/sinal, são sinônimos nesse nível de análise)
1 botão zera os 3 cronómetros e deixa no estado parado.
1 botão passa de parado para rodando os 3 cronômetros
1 botão pára o cronometro #1
1 botão pára o cronometro #2
1 botão pára o cronometro #3
Se for isso, acho que com 3 timers é complicado, vc usaria 3 timers, não deixaria nada para o sistema.
Antes de mais nada, qual a precisão que vc precisa ?
Outra coisa, veja que seu programa trabalha intensamente atualizando o LCD, isso pode gerar delay na leitura dos sinais.
Eu faria assim:
Uma interrupção de timer, mais rápida que conseguir programar (melhor microcontroladores rápidos). Vamos falar em 100x segundo.
Dentro dessa interrupcao vc colocaria a leitura dos pulsos, com o devido tratamento, atuando só sobre memórias.
Ex:
Temos CR1=Cronometro1 CR2=Cronometro2 CR3=Cronometro 3; Rodando (1=sim);
MCR1=Memoria do CR1;
Se aperto Reset: CRs=0 e Rodando=0;
Se aperto Dispara: Rodando=1;
Se aperto Para1: MCR1=CR1; e assim vai.
Depois
Se Rodando==1 Crs++
Assim, bem enxuto, sem chamar absolutamente nenhuma coisa complicada como biblioteca, usar ponto flutuante, divisão de mais de 16 bits, nada, pq essas coisas podem fazer a interrupção demorar pra finalizar e vc pode perder contagem.
Feito isso o programa principal se encarrega de apresentar, o loop fica só atualizando o display.
As contagens, assim, seriam em centésimos de segundo, o programa principal converteria para minutos, segundos e centésimos.
Vc pode fazer quantos cronômetros quiser, desse jeito.
Para maior precisão vc pode usar um arduino rápido, como o Arduino DUE. Assim poderia fazer 1000 interrupções por segundo (chute, não fiz calculo algum para falar isso).
Bom dia
Este projeto é seu ou você copiou da web?
É trabalho escolar?
RV mineirin
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por