Pessoal estou tendo dificuldades em ajustar minha rotina que calcula o RPM do motor. Os valores ficam errados, mas a fórmula está correta, o motor está em 850RPM aproximadamente mas os valores que são exibidos ficam errados e oscilando aleatoriamente por ex.: 2568,1487,4879,2589,7852,15975... Alguém pode me dar uma luz?
O código anexo.
Tags:
Oi 2CB, boa noite.
Recomendações:
Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar ,
retire o code da área de texto e anexe como arquivo e ai posso pensar em ajuda-lo.
Rui
Corrigido. Obrigado.
Rui,
infelizmente não calculou certo. A leitura ficou bem mais estável do que antes. Só os valores que não ficaram corretos.Veja no vídeo:
Nesse momento o motor estava em aproximadamente 700 a 750RPM. O arduino mostrava valores entre: 23800-31700RPM
Tem alguma sugestão?
Muito obrigado!
Boa noite Cezar, desculpe se estou enganado mas esse programa nao e para motor 6 cilindros, o seu motor e 6 cilindros? se tiver enganado me desculpe.
Sim, isso mesmo Nelson.
Mas o calculo é o mesmo.
1 volta no virabrequim equivale ao número de cilindros dividido por 2. Logo (6 / 2) a cada 3 pulsos temos 1 volta.
Então divide pega a quantidade de pulsos obtidos numa determinada janela de tempo e divide por 3, no meu caso. E multiplica isso pelo equivalente em 1 minuto. Basicamente é isso, mas no arduino não mostra os valores corretos. E oscila um pouco...
Ola Cezar, no codigo que o Rui Viana te enviou em :
rpm = (((float)pulsos / ((float)numeroCil / 2)) ) * 300;
experimenta trocar o ( * 300) por 3000 ou 6000, talvez seja ai a diferenca,
em questao de oscilacao na leitura pode ser o jeito de como voce esta fazendo a leitura? voce esta utilizando que circuito?
Olá Nelson,
mas no caso seria dividir, não? O RPM no carro estava +/- 750RPM
enquanto que no arduino mostrava na casa dos 20000. Se mudar de 300 para 3000 vai ficar maior ainda o valor.
Estou pegando o pulso diretamente do negativo da bobina +12v e ligando em um regulador de voltagem para +5v e nele direto na porta do arduino, seria isso a oscilação?
Bom Dia Cezar, e isso ai e dividir , pode diminuir para "30" ou mais, vai testando, e se nao der certo tem esse topico que usa um codigo parecido que pode funcionar:
http://labdegaragem.com/forum/topics/ajuda-com-codigo-para-medir-rp...
nesse topico ele explica o jeito que ele tira o pulso da bobina tambem,
tem esse circuito tambem(em anexo--rpm--bobina), mas se tiver receio de queimar o arduino pode usar esse( em anexo--rpm bobina fotoacoplador) que usa um foto acoplador (esse circuito foi do José Gustavo Abreu Murta de um outro topico) que voce pode usar um fotoacoplador comum , ele tem um zener de 12V na entrada para protecao , a entrada voce pode ligar em paralelo com a bobina (o lado do resistor no polo + da bobina e o outro no polo - da bobina).
Boa tarde Nelson,
eu tinha visto esse tópico, mas não achei o código eficiente, pois usa um "while" dentro do "loop", queria uma solução sem matar tempo da CPU. Vou estudar esse fotoacoplador, Obrigado pela dica!
Cezar bom dia ,
Já pesquisei bastante sobre Tacomentros com Arduino.
Imfelizmente, devido à uma limitação no uso dos contadores internos do ATmega328, existe uma pequena imprecisão na contagem (fica variando).
Existem vários meios de medir RPM :
http://www.pyroelectro.com/tutorials/tachometer_rpm_arduino/
http://www.arduinoos.com/2013/08/engine-rpm-part-1/ (em 5 partes)
http://members.rennlist.com/tom86951/Speedometer%20Calibrator%20Pag...
O que pode minimizar o problema da imprecisão é usar um filtro passa baixa ( sketch) . Tenho usado esse filtro com sucesso para outros tipos de medidas. Tente fazer um teste.
A variação do seu Tacometro esta absurda ( alguma coisa errada). Envie o circuito que esta usando. Pode estar sofrendo alguma interferência eletromagnética. Use cabo blindado para conectar o sensor ao Arduino. Não use a bateria do carro para alimentar o Arduino (pelo menos durante os testes).
Se for usar a bateria do carro, terá que usar filtros e choque( bobina) para eliminar ruidos da ignição do motor.
Calculando RPM
O filtro Passa baixa da qual informei é esse ( muto bom ! )
https://github.com/simonmonk/ArduinoNextSteps/blob/master/ArduinoNe...
E tem esse para calcular a média das leituras :
https://github.com/simonmonk/ArduinoNextSteps/blob/master/ArduinoNe...
Conheci esse filtro no Livro do Simon Monk :
http://simonmonk.org/books-2/programming-arduino-next-steps/
https://github.com/simonmonk/ArduinoNextSteps/tree/master/ArduinoNe...
Livro traduzido (excelente dica) :
http://loja.grupoa.com.br/livros/controle-e-processos-industriais/p...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por