Tenho um motor de 75 kgf com eixo girando em falso, o que pode ser? ta quebrado a redução ou programação errada? foto anexada
Programação:
int intervalo =10;
digitalWrite(pul, LOW); //atribui o novo estado à porta
delay(intervalo);
digitalWrite(pul, HIGH); //atribui o novo estado à porta
delay(intervalo);
Supondo que esteja programando no IDE do Arduino, o comando delay(10) temporiza 10 milissegundos. Para implementar uma rampa de aceleração linear, você deveria usar atrasos decrescentes numa taxa que se reduz linearmente. Comece temporizando com delay(1000), um segundo e vá reduzindo até constatar a perda de passo. Acho que 10 milissegundos poderia ser muito pouco para um motor desse porte, com duas temporizações de 10 ms, a frequência de acionamento seria de 1000/20 = 50 Hz, que poderia ser elevada e sem rampa de aceleração, a depender da tensão de alimentação e se há controle de corrente do motor.
Ou seja, um aspecto acessório à temporização, mas essencial, é a tensão de alimentação e se usa algum tipo de controlador (chopper, linear, ...) para manter a corrente constante. Sem alguns cuidados nesse aspecto (tensão de alimentação elevada e controle de corrente), haverá perda de passo, mesmo em rotações reduzidas. Além disso, é necessário avaliar se a sua aplicação requer rotações elevadas, o que poderia dispensar, ou amenizar, os requisitos de acelerações elevadas, bem como tensões elevadas e o controle da corrente do motor. Aliás, o correto seria avaliar o par torque x rotação de sua aplicação em várias condições de operação (várias rotações e torques requeridos).