Pessoal, tenho um motor DC da Hitachi, com um encoder de quadratura (porém estou usando apenas uma das chaves ópticas e funcionando como um encoder incremental) de 200P/R. O problema é que não consigo bolar um algorítimo eficiente no Arduino para calcular a quantas RPM ele está girando. Na verdade até que eu consegui, mas apenas com uma taxa de amostragem de 1000 milissegundos. Eu preciso de uma taxa de uns 50 milissegundos para ele funcionar bem.

Chamando a função attachInterrupt(0, rpm_fun, FALLING); durante um delay(1000); e fazendo o seguinte calculo depois da detachhIterrupt(0): (60/200)*1000/(millis() - timeold)*rpmcount; eu obtenho as RPM porém atualizando a cada 1 segundo

Se eu mudar a taxa de amostragem para delay(50); os cálculos não funcionam. 
E mesmo depois de tentar compensar para: (60/200) * 1000/(millis() - timeold) * (rpmcount / 20 ); não dá certo.

Alguém tem alguma fórmula eficiente para fazer esse cálculo?

Código para Taxa de Amostragem de 1 segundo:http://pastebin.com/THhURWRc (Funciona)

Código onde tento modificar o cálculo para uma taxa de 50 milissegundos:
http://pastebin.com/f2r7tL87 (Não está funcionando como deveria, os valores obtidos são diferentes, embora a rotação seja a mesma)

Exibições: 1120

Responder esta

Respostas a este tópico

Oi Fernando, bom dia

Vi o DS  do 200P/R em : 

http://www.digikey.com/product-detail/en/E6A2CS3C%20200P%2FR%200.5M...

verifiquei que ele pode fornecer de 100 até 500 (resolução) pulsos por rotação, e que pode chegar até 5.000 RPM.  Certo?

Qual resolução e qual faixa de velocidade voce pretende usar e medir a RPM?


Rui

Fernando,

complementndo o meu texto, sugiro que ao invés de voce usar interrupt para medir o 

tempo do pulso, voce use a função " pulseIn(pin, value) " , e calcule a RPM com

o resultado desta medida.

Rui

Caro Fernando,

Por favor me envie o código que você está utilizando para que eu possa analisar, estou fazendo atualmente algo parecido com isso, o que funciona e o que não funciona, pois eu tento entrar no link que você colocou mas diz que a página foi removida.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço