As many others i am new to Arduino.
I am trying to control the torque of a motor in both directions (CW & CCW) through MegaMoto Plus motor board: http://www.robotpower.com/downloads/MegaMoto-user-manual.pdf
And the motor i want to control:http://www.pml.com.cn/ver2en/motors/GPM16LR.html
The control signal (signal into the Arduino) is a +-5V where - = CW and + = CCW rotation. As an input signal is given to the Arduino, the motor must produce a torque and continue to do so, even after the motor has stopped because the load is greater than the torque produced from the motor.
You can think of it as a motor connected to a spring. When an input signal of eg. +2V the motor has to turn CCW with a torque 2/5 of maximum, hereby extending the spring - at some point the force from the spring will be the same as the torque/force from the motor and then then the system has reached an equilibrium. if you apply a higher input the motor will start turning CCW again and if you lower the signal the motor will unroll the spring until a new equilibrium has been reached. If no signal is provided the motor must become "loose" and the spring will be the only force (neglecting friction) in the system.
Some will probably ask me why i dont just use a position servo so i will reveal right away that i need to control the torque, NOT the position.
My guess is that i can use a closed loop servo approach, but instead of the feedback signal being a encoder it will be a current measurement. I want to use the current sensors in the motor shield hereby generating an error signal for the feedback loop. The error signal will result in a change in the PWM cycle in order to reduce the error so the produced torque will actually reach the desired value. Is that right?
I am learning every day, so please bear with me.