nao é isso que estou me referindo. é outra coisa que ainda nao entendeu. abaixo explico
De toda forma tenha em mente que nao terá controle por metro a metro exatos dessa forma e a atualizaçao do teu hodometro dará por numeros quebrados e nao centesimal do quilometro com é o hodometro profissional .a interferência disso no tempo de processamento é desprezível e a precisão é bem aceitável.
1750mm(comprimento de certa roda)
1750 / 8(pulsos a cada 360º) = 218mm
ex: pra ter "100m" dessa tua forma, teria que ter algo assim
* 458 pulsos (99840mm) ou
* 459 pulsos (100062mm)
* contagem por pulso nao funciona em valor exato. tem que dividir 1 pulso 218mm pelo tempo do periodo do pulso, pra poder ter os 100.000mm exatos
como tinha dito desde o começo, por pulso sem tempo junto nao é precisoe vai ter erros de precisao grotescos, teria que usar tempo dentro de cada 218mm. ae é muiiiiiiito preciso.
ex: pra formar 1000mm(1m)
4 pulsos + (59% do tempo de 218) {pulsos + tempo}
218 + 218 + 218 + 218 + 128 = 1m
ja tem ideia como vai mostrar no display? tu simplesmente nao pode mostrar 100m a cada atualizaçao. pq estaria mentindo a distancia real !
esse erro é muito grotesco. "ideal" nesse exemplo seria a cada 459P = "100m" esta mais proximo, estaria errando menos.
faz um somatorio disso entao.
*62mm a cada "100m"
*620mm a cada "1 km"
*6200mm a cada "10 km"
*62000mm a cada "100 km" ...
ops, a cada 100km erro 62 metros! ganhou de brinde e seu carro ficou mais velho rsrsrs
entendeu a gravidade agora? tu nao vai poder mostrar 100m pq estaria mentindo, a nao ser que nao se importe com isso hehehe, ouuuu poderia usar esses valor quebrado, e sinceramente nao sei como tu vai fazer pra mostrar essa ckt de numero, sem usar tempo/distancia por pulso.
-------------
dica: nao faça por delay a atualizaçao a cada 500msec como ta querendo... os hodometros profissionais usam uma contagem progressiva pra isso, tipo a cada 458 pulsos contados incrementa 1 centésimo de quilometro e reseta o ciclo. esses loop nao é o modo certo de fazer
if (pulsecnt >= 458) {
pulsecnt = 0; // reset
hodocen ++; // 100m
}
bom, faça como quiser, so estou te alertando que vai marcar errado teu hodometro. faça como teste no começo so por somatorios de pulsos e use um GPS e veja se bate oque mostra no painel com a real distancia.