Odometro contando errado...

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Odometro contando errado...

Mensagempor Fernando » 13 Abr 2008 14:53

Estou fazendo um velocimetro usando o 89s52, mas o odometro esta errado, só funciona certo quando tenho sinal correspondente a 90km/h.

Estou usando o Timer1 como contador com auto-reload, a fim de não perder os pulsos de contagem, conta até 200 pulsos interrompe e recarrega e volta a contagem, até essa parte está tudo bem. Ah isso me da a resolução de contagem de 100 metros.

O sensor gera 4 pulsos/volta ou 2 pulsos/m, tomando por base uma roda com 2 metros de comprimento.

Uma das coisas que percebi é que:
a 90km/h -> 25 m/s -> 50 pulsos exatos (e onde o odometro conta certo)
a 60km/h -> 16,66 m/s -> 33 pulsos (considerar que do 0,6, tirando 0,5 temos + 1 pulso e um resto de 0,1 que teoricamente fica pra proxima contagem)
a 100km/h -> 27,7 m/s -> (27,7 x 2 = 55,4) 55 pulsos e uma sobra de 0,4

Bom já andei fazendo um monte de calculo e não cheguei a conclusão nenhuma.... :(

Como ainda não fiz um fator pra corrigir o tamanho da roda (quando se muda o tamanho da roda, muda a contagem da distancia e velocidade) acho que terei de fazer alguma coisa integrada... mas o que não estou conseguindo visualizar é a maneira de tratar os pulsos....

Caso alguém que tenha mais experiência, ou já teve um problema parecido, sugestões são bem vindas... tinha um tópico parecido no forum antigo, até consegui logar mas não consegui achar nada... lembro que tinha muito material interessante sobre isso.

[]s
Fernando.
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Fernando » 14 Abr 2008 08:31

Nenhuma idéia? Sugestão? Critica?

:roll:
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Wagner de Queiroz » 14 Abr 2008 10:15

voce ja parou para contar os pulsos para ver se ele nao esta perdendo pulsos não?

Eu tinha uma bicicleta que tava com problemas de medir a velocidade errada no ciclocomputador, quando eu estava em altas velocidades, Eu descobri depois ajustando o imã (Que tinha escorregado um pouco) o bicho voltou a contar direito. Talvez possa ser algo neste sentido.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor Fernando » 14 Abr 2008 23:27

Wagner de Queiroz escreveu:voce ja parou para contar os pulsos para ver se ele nao esta perdendo pulsos não?

Eu tinha uma bicicleta que tava com problemas de medir a velocidade errada no ciclocomputador, quando eu estava em altas velocidades, Eu descobri depois ajustando o imã (Que tinha escorregado um pouco) o bicho voltou a contar direito. Talvez possa ser algo neste sentido.


Bom Wagner até 200 Hz eu testei, colocando sinal na entrada, funcionou sem problema, pelas minhas contas até 220 km/h eu teria cerca de 122 Hz.... o Timer1 está como contador por borda e com auto-reload, ou seja ele estoura, chama interrupção e já conta logo em seguida, nos testes que fiz e fiz ele plotar o valor das ints no lcd funcionou direito...

Tem uma relação entre pulsos/tempo que se tira velocidade e o odometro, inclusive acho que nessa equação mesmo dá pra compensar o tamanho da roda...mas infelizmente não consegui chegar a nenhuma conclusão.
Vi algumas coisas na internet mas não foram muito esclarecedoras... por isso estou aqui pedindo ajuda.
Valeu a atenção.
Fernando.
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Wagner de Queiroz » 15 Abr 2008 09:53

Ta, voce ta injetando sinal, tudo bem
mas como esta fazendo a leitura?

Eu estou dizendo se o sensor ta lendo tudo.

Obviamente se vc injetar o sinal vai ter leitura pq o mcu foi projetado para ler rapido, mas, e se o seu elemento sensor nao esta lendo direito?
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor Fernando » 15 Abr 2008 18:23

Wagner de Queiroz escreveu:Ta, voce ta injetando sinal, tudo bem
mas como esta fazendo a leitura?

Eu estou dizendo se o sensor ta lendo tudo.

Obviamente se vc injetar o sinal vai ter leitura pq o mcu foi projetado para ler rapido, mas, e se o seu elemento sensor nao esta lendo direito?


O sensor é comercial, e é uma roda magnética com sensor hall, que muda de estada a cada 90° ou seja 4 pulsos a cada volta completa da roda.
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Jorge_Francisco » 15 Abr 2008 18:31

Só funciona quando está a 90km/h? Acima funciona?Abaixo funciona? Não entendi qdo não funciona. Será que não tem haver com arredondamento nos calculos?
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor Fernando » 16 Abr 2008 13:16

Jorge_Francisco escreveu:Só funciona quando está a 90km/h? Acima funciona?Abaixo funciona? Não entendi qdo não funciona. Será que não tem haver com arredondamento nos calculos?


Funciona com qualquer velocidade, o problema é a contagem para ser exibida no hodometro, ele só conta certo quando o sinal é equivalente a 90km/h.
Como fiz, peguei e injetei com o gerador direto no TC1 a frequencia equivalente a 90km/h (25Hz)durante 1 minuto, e isso me deu 1,5 km/minuto. Se eu fizer o mesmo teste com o sinal de 60km/h (17 Hz), teoricamente teria que ter 1km/minuto, mas isso não acontece, ele dá 0,8 , 0,9.... se deixar por 10 minutos por exemplo o erro fica acumulativo e varia com a frequencia que entra.
Andei pensando o esquema é ter 10 pulsos/metro, com 1 resolução de 10cm fica mais fácil e vai gerar menos erro... ao invés de 2 pulsos/metro. Única coisa que terei de usar o TC2 como contador de 16 bits com auto-reload...

[]s
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Fernando » 02 Mai 2008 08:29

Bom depois de alguma teimosia cheguei a aconclusão que estou perdendo pulsos realmente.....

Mas agora não sei o que fazer. Pois estou usando o RTX51-Tiny, e apesar de ter configurado o timer1 como contador e certo (pelo menos acho eu) ele só pega alguma interrupção após 32 segundos do circuito ligado... independente da frequencia, pode ser 10 Hz ou 1kHz...

Alguém com experiência no RTX51-Tiny pode me ajudar?!

[]s
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Wagner de Queiroz » 02 Mai 2008 10:20

num falei que vc poderia estar perdendo pulsos?

faz assim. coloque um mcu no caminho que só conte os pulsos e envie a quantidade lida de pulsos para o mcu do velocimetro numa base de tempo prédefinida (meio segundo?) Como seu MCU deve estar ocupado mostrando resultados num display ou outras coisas cabulosas é melhor colocar um assistente podre só pra contar pulsos, quem sabe um PIC que só presta pra acender leds de arvore de natal (Brincadeirinha sobre a arvore de natal)

O fato do chip só avisar em certas ocasioes pode nao justificar a perda de pulsos, voce esta certo em aumentar a frequencia de leitura, assim voce pode diminuir o erro de leitura. ainda acho que um assistente só para ler os pulsos seria melhor.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor RobL » 03 Mai 2008 17:31

Extendendo a observação do Wagner:
Não há nenhum circuito na entrada que está sendo seletivo para a frequência que esta entrando (em torno dos 90Km/h)?
Algum filtro de ruído nessa entrada com RC ou RLC?
Se houver causará perdas de pulsos e acima ou abaixo de algum valor nem pegaria os pulsos.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor Fernando » 04 Mai 2008 15:17

RobL escreveu:Extendendo a observação do Wagner:
Não há nenhum circuito na entrada que está sendo seletivo para a frequência que esta entrando (em torno dos 90Km/h)?
Algum filtro de ruído nessa entrada com RC ou RLC?
Se houver causará perdas de pulsos e acima ou abaixo de algum valor nem pegaria os pulsos.


Não Rob, o sensor já manda os pulsos bem definidos, quanto a isso não há problema pois ele entra direto no mc, apenas tratando o nivel para 5V.
Estou usando o gerador de sinais para simular na bancada... o problema é a perda de pulsos mesmo....

To tentado a usar a solução do Wagner... estou apenas esgotando as possibilidades pra não ficar com peso na quociencia hehehehe....

To achando q o OS o RTS-Tiny ferra o uso do timer1.... e por isso ele perde as INTs.... to configurando o Timer2 pra ver se acontece a mesma coisa.....
Mas valeu
[]s
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR

Mensagempor Fernando » 11 Mai 2008 19:46

Puts achei o problema... configurei o TMOD errado.. daí matava o T0.... por isso q depois de 1 tempo quando alterava TMOD pro T1 o T0 funcionava... agora está contando os pulsos certos....

[]s
Confiança:
"Em condições normais, corro para vencer e venço.
Em consições adversas, também posso vencer.
E mesmo em condições muito desfavoráveis, ainda sou páreo."
Ayrton Senna
Avatar do usuário
Fernando
Bit
 
Mensagens: 40
Registrado em: 15 Out 2006 01:52
Localização: Curitiba / PR


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x