Contar ciclos de produção de uma maquina

Preciso de uma ajuda, estou com um projeto de um data logger para instalar em uma máquina para contar em quantos segundos é o ciclo de produção de uma peça, a máquina me envia um sinal digital do contador dela, quero pegar esse sinal e contar quantos em segundos vem outro sinal ,ou seja, outra peça produzida.Valeu

O que é que já fizeste?

Quanto queres gastar?

Como queres transferir esses dados para o utilizador?

Como é que o sinal é dado? Tem bounce? Como acoplaste as diferentes tensões?

Qual é em média o intervalo entre ciclos? Eu entendo que queres monitorizar, mas deves ter uma gama de intervalos que a máquina normalmente leva a fazer a operação. Isso é importante para determinar qual o melhor método para contar o tempo.

Responde a estas questões e será mais fácil ajudar. Nota que ninguém está aqui para fazer o trabalho por ti, mas para te ajudar. Logo, convém que mostres o que já tens feito e um ponto específico onde tens problemas e não um enunciado para um problema.

Vamos lá,

O prejeto é o seguinte,

Vou usar o PLX-DAQ para me enviar dados do arduino ao excel em tempo real,no caso o sinal viria de um interruptor ligado ao digital input do arduino , ou seja quando o interruptor mudar de estado me enviaria os dados para o excel, que no caso é apenas o horario e um contador de linhas , essa parte já esta feita.O que não estou conseguindo é fazer um contador de tempo entre um acionamento e outro do interruptor,esse interruptor é acionado mecanicamente pela máquina,cada acionamento é uma peça produzida ,devo usar um optacoplador para acionar o arduino.O intervalo de ciclo é em torne de 50s egundos.

Obrigado a todos

Para contar tempo, pode utilizar a função millis() do Arduino, ou então usar um componente externo (Real Time Clock - RTC) que lhe forneça a hora actual. Para o tempo de produção, eu diria que um RTC pode fazer o trabalho, no entanto, como essa opção implica a compra de um componente, pode usar (pelo menos para já) a função millis().

Já testei a funcao millis, consegui que me conte o tempo, porém não consegui fazer zerar a funcao millis a cada ciclo de produção.

Não deve zerar a função, isso é impossível. A função, apenas devolve zero quando o processador inicia o seu funcionamento e quando rebenta o contador (quando chega ao valor máximo da contagem, recomeça do zero). O que deve fazer é guardar o valor que a função devolve após um evento, adquirir o valor no evento seguinte e subtrair os dois valores. Isto dá-lhe o tempo em milissegundos entre um evento e outro. Dividindo por 1000 obtem o tempo em segundos.