fazer 3 cronometros que pausem em tempos diferentes usando led infravermelho

nao sei como usar mais de 1 timer

Exibições: 225

Anexos

Responder esta

Respostas a este tópico

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

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço