Pois é, é necessário que voce recue "x" passos, onde voce não sabe o valor de x. Assim deve usar x muito alto, para compensar a folga + os possíveis valores de redução do sistema que algum usuário pudesse usar (200, 360, 400, 40.000, 100.000...).
Gil,
entendo que o número de passos para compensar folga tem pouco a ver com a redução.
No arranjo usual, uma engrenagem é solidária (presa) ao eixo do divisor/mesa e um sem-fim é solidário ao eixo do motor. Assim, a folga está entre o sem-fim e a engrenagem.
Imagine um conjunto sem-fim/engrenagem com a maior folga possível: a espessura dos dentes da engrenagem e dos fios da rosca tende a zero. Ainda assim, girando o sem-fim uma volta completa para um lado ou para o outro, necessariamente ele encontra um dente da engrenagem.
E isto independe do valor redução.
Ou seja, com uma volta do motor necessariamente o sem-fim vence a folga.
Em uma montagem real, uma folga de 1/8 da espessura do dente já me parece muito. Considerando mais 7 meios-passos de defasagem motor/progama, e considerando que os motores para esse fim seriam de 200 passos por volta, 1/4 de volta do motor - ou 100 meios-passos - já daria e sobraria. Mas se quiser ser exagerado - por que não? - meia volta do motor de compensação, ou 200 meios-passos.
Em um conjunto com redução pequena (como o conjunto que vc conseguiu), isso daria 1/20 de volta na placa. Em um conjunto com redução maior (400 x 60 ou 400 x 90) isso daria 1/120 ou 1/180 de volta. Em nenhum caso isso me parece muito - lembrar que estamos falando de uma vez ao iniciar o uso do divisor e em casos em que for necessário retroceder uma divisão.
Se for assim, num divisor com alta redução a placa andaria um pouquinho, no outro daria várias voltas, não acho isso uma implementação agradável à vista, sendo mais direto, acho que seria uma solução meio "suína", né...
Para montagens "similares", quanto maior a redução, menor tende a ser o movimento de compensação visto na placa. Isto é quase uma consequência geométrica (a folga máxima angular da placa é inversamente proporcional ao número de dentes da engrenagem).
Ou então deixar que cada usuário programe o seu divisor...
Isso não me parece tão problemático, especialmente considerando que é uma vez na vida.
Apesar de achar que já estamos na perfumaria desse assunto (que bom!
) vou tentar incluir um "assistente de compensação de folga"
no menu de configuração.
Começando com compensação zero, o motor faz umas 3 vezes um vai-e-vem de n passos. Pressionando B, aumenta n e faz o vai-e-vem. Pressionando A, diminui n e faz o vai-e-vem. O usuário monitora para ver o menor valor em que pode ser visto movimento da placa nos 2 sentidos. Pressionando C aceita e grava esse valor de compensação na EEPROM.
Acho que se fosse automatizar a zero da placa, seria mais eficaz colocar um pequeno índice (uma plaquinha) presa à placa da mesa e um sensor ótico transmissivo, tão pequenos que pudessem até ser embutidos na mesa divisora. Desse modo, o divisor poderia medir o backlash e inclusive zerar a folga inicial, com uma movimentação mínima necessária e auto-adaptável a qualquer redução imaginável, dentro dos limites numéricos do divisor.
Isso me parece exagero, mas é só minha opinião.