Designing a DC Motor Torsional Spring Circuit with Arduino Uno

In summary: Yes, you need an arrangement where the current supplied to the motor is a function of the position error. use a rotary potentiometer to measure the error and write the PWM signal proportional to this error--to emulate some "spring" constant k.Yes, you could use a rotary potentiometer to measure the error and write the PWM signal proportional to this error--to emulate some "spring" constant k.
  • #1
HadenWilly
5
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
  • #2
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
  • #3
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.
 
  • #4
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!
 
  • #5
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
  • #6
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.
 
  • #7
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
  • #8
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...
 
  • #9
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!
 

FAQ: Designing a DC Motor Torsional Spring Circuit with Arduino Uno

What is a DC motor torsional spring circuit?

A DC motor torsional spring circuit is a type of circuit that uses a DC motor and a torsional spring to convert electrical energy into mechanical energy. The torsional spring acts as a torque amplifier, allowing the motor to produce more rotational force.

How does an Arduino Uno control the DC motor torsional spring circuit?

The Arduino Uno is a microcontroller board that can be programmed to send specific electrical signals to the DC motor and torsional spring. These signals control the speed and direction of the motor, as well as the amount of torque produced by the torsional spring.

Can the DC motor torsional spring circuit be used for different applications?

Yes, the DC motor torsional spring circuit can be used for a variety of applications, such as robotics, automation, and mechanical systems. It is commonly used in projects that require precise control of rotational motion.

What are the advantages of using an Arduino Uno for this circuit?

The Arduino Uno is a cost-effective and versatile microcontroller board that is easy to program and can be used for a wide range of projects. It also has built-in features such as pulse-width modulation (PWM) that make it ideal for controlling motors.

Are there any safety precautions to consider when designing this circuit?

Yes, it is important to consider the voltage and current requirements of the DC motor and torsional spring. Make sure to use appropriate power sources and components to prevent overheating or damage to the circuit. It is also important to follow proper wiring and grounding techniques to avoid electrical hazards.

Similar threads

Back
Top