Gostaria de colocar o arduino para contar os pulsos enviados por 3 sensores fotoeletricos distribuidos em diferentes pontos de uma esteira transportadora.
A minha duvida é como ficaria se todos os sensores enviassem pulsos ao mesmo tempo, como ficaria a contagem. É possivel fazer a contagem deste modo?
Primeiro temos de espremer esse "ao mesmo tempo".O Arduino não é multitask, logo todas as operações são cíclicas.
Ok vamos usar interrupts nos pinos que suportam interrupção, o que vai acontecer se os 3 pinos estiveres chantados e todos eles tiveres uma interrupçao activa?
Esta é uma questão que de momento não te sei responder mas vou testar chegando a casa.Não sei qual será o comportamento das interrupçoes já que todas seriam disparadas ao mesmo tempo ...
Isto apesar de poder acontecer (os 3 pinos ativarem a interrupcao no mesmo instante) e pouco provavel que aconteça na pratica.
Já agora esta questão é interessante para ser solucionada pelos membros do forum
o que vai acontecer se os 3 pinos estiveres chantados e todos eles tiveres uma interrupçao activa?
shuntados é a palavra correcta... vem do inglês shunt.
Essa é uma boa questão e se não me engano existem prioridades nas interrupções do AVR (ou posso estar a confundir), logo provavelmente as prioridades tomariam conta. Se o código da interrupção for curto não deve dar muita barraca, acho.
Quando me refiro ao mesmo instante e bem mais preciso do que um vulgar segundo.O mesmo instante na minha explicação será o relogio começar a contar e todos os pinos serem setados no instante 0,0012 segundos por exemplo.A probabilidade de todos os pinos serem setados no momento 0,0012 segundos e muito baixa.Claro que essa possiblidade inda existe e se acontecer algo ira falhar.
Concordo com o HugoPT, por mais rápida que seja uma esteira não acho que vão passar mais de 1000 objetos por segundo, não é?
Mas supondo que isso é possível de ocorrer (dois ou mais sensores enviarem pulsos ao mesmo tempo), por que não verificar da forma "simples", sem interrupt?