Designing a DC Motor Torsional Spring Circuit with Arduino Uno

AI Thread Summary
A user seeks to design a circuit using a DC motor as a torsional spring with a variable spring constant, controlled by an Arduino Uno. The motor should respond to applied torque by rotating counterclockwise and return to its original position when the load is removed. Proportional control is recommended, using a rotary potentiometer to sense position and PWM to modulate motor current for torque control. The discussion highlights the need for careful selection of motor specifications, torque requirements, and position sensing methods to achieve the desired functionality. Overall, the approach is feasible, with suggestions for circuit design and control mechanisms provided.
HadenWilly
Messages
5
Reaction score
3
TL;DR Summary
Need help designing motor control circuit to have a DC motor act as a torsional spring. The motor will "deform" under torque and return to original state once torque is removed.
I'm a relatively new entry into the world of electronics so my understanding of what is possible may not be an accurate one. In a nutshell, I would like to have a DC motor act as a torsional spring with some variable virtual spring constant (k). The motor, or "spring", would act against an applied torque and "deform" by rotating counter clockwise. Once the load is removed, the motor should return to its "undeformed" state by rotating clockwise. I'm using an Arduino Uno as a test bed, so I'm fine with using imprecise, low voltage components at this stage. Any help on designing a circuit is much appreciated!
 
Engineering news on Phys.org
Yes, it is both possible and practical. Use proportional control. No integral, no derivative. Command the motor to the zero load position. Then an external torque will rotate the motor shaft an amount determined by the torque and the proportional gain. The proportional gain sets the "spring constant" of the motor.
 
  • Informative
Likes berkeman
HadenWilly said:
I would like to have a DC motor act as a torsional spring with some variable virtual spring constant (k).
The torque of a DC motor is proportional to the motor current.

If you couple a rotary potentiometer to the motor shaft, and supply a current to the motor that is determined by pot position, then you will have a torsional spring. You could use a single-turn pot to get up to 300° rotation, or a ten turn pot for more than one turn.

We would need to know the motor details before we could specify a circuit to regulate the motor current. No control processor would be needed unless you wanted to change the spring parameters.
 
jrmichler said:
Yes, it is both possible and practical. Use proportional control. No integral, no derivative. Command the motor to the zero load position. Then an external torque will rotate the motor shaft an amount determined by the torque and the proportional gain. The proportional gain sets the "spring constant" of the motor.
I see, so if I used PWM is a means of controlling average voltage to the motor, could I use the width of a PWM pulse as my gain? In effect, wouldn't this control how quickly the motor "springs" back into place? Again, I might be a bit off track. Thank you for your respose!
 
HadenWilly said:
I see, so if I used PWM is a means of controlling average voltage to the motor, could I use the width of a PWM pulse as my gain?
For a DC motor, the voltage sets the maximum speed of the motor when it is unloaded = zero torque.
It is the current that sets the motor torque.

To emulate a torsion spring you must sense the angular position of the motor and provide a torque proportional to angle.

By comparing the motor position to the motor current, you can PWM the motor voltage, and so increase or reduce the motor current to control the torque.
 
  • Informative
Likes berkeman
It sounds like you need the motor to reverse direction to "bounce back like a spring". Is that correct?

Changing the voltage won't make a motor change directions.

It may help if you describe better what you are trying to accomplish. It may be that a motor is not the best way to do it.
 
Everything that you need to know is present in this thread - just not all (explicitly) in the same post.

Jrmilcher (post #2) and Baluncore (post #3) are telling you the same thing:

you need an arrangement where the current supplied to the motor is a function of the position error. Baluncore's 'rotary potentiometer' is a necessary 'process value,' whether the control is implemented in a circuit or a PID loop - it tells you the magnitude of the error.

PWM control is a simple way to modulate the motor current - it could be an acceptable way to implement the PID/circuit output, if you only need to 'spring' in 1 direction - depends on the forces required to maintain 'home' position (you can't change direction with simple PWM, as Anorlunda states).
 
  • Like
Likes Merlin3189 and jrmichler
Could you use an actual spring, and tweak its parameter with a servo motor ? The control system is trivial, and it will hold its setting due to the high-ratio internal gearing...
 
Thanks for the input, its greatly appreciated! So to be a bit more clear, I want the motor to respond with a torque as soon as torque is applied (as a spring would) and also spring back to some initial state. I could use a pot to measure the error and write the PWM signal proportional to this error--to emulate some "spring" constant k. Am I understanding correctly how this works?
 
  • Like
Likes Dullard and Tom.G
  • #10
HadenWilly said:
I want the motor to respond with a torque as soon as torque is applied (as a spring would) and also spring back to some initial state.
Do you want it to respond to a negative torque also, with the same constant, or just return to zero?
 
  • #11
Baluncore said:
Do you want it to respond to a negative torque also, with the same constant, or just return to zero?
No, I just want it to respond to a torque if its loaded counter clockwise (positive) and return to zero once the load is released. I understand I wouldn't be able to use PWM to respond to both positive (ccw) and negative (cw) torques.
 
  • #12
HadenWilly said:
I understand I wouldn't be able to use PWM to respond to both positive (ccw) and negative (cw) torques.
PWM can be bidirectional if you use an H-bridge (with 4 transistors and 4 diodes). You only need one transistor and one diode, (a quarter bridge) for unidirectional torque.

The reason I asked is that the sensing of motor angular position would be different.
Also, for unidirectional torque a physical stop could be used at zero to prevent oscillation, or loss of power if the motor reached a negative position.

Now you need to;
1. Identify the magnitude and range of the torque required.
2. The type and size of DC motor to use. The power requirements.
3. The number of turns, or maximum deflection angle required.
4. The type of angular position sensor. Pot or a shaft encoder? Absolute or incremental?
5. The type of stop at zero, or the limit sensor(s).
 
  • Informative
Likes HadenWilly
  • #13
Thanks so much for the advice!
 
Back
Top