Options for linear actuator position feedback

When using linear actuators there are some applications where you just need to move the rod in and out, or manually adjust the position with a switch. These applications typically do not need you to keep track of the position of the actuator rod. Other applications you either need to know the position of the rod, or perform some action at specific positions. These applications require position feedback from the linear actuator.

When choosing an actuator with position feedback there are two main options. You can choose an actuator with a potentiometer, or you can choose an actuator with an encoder. There are two main types of position encoders for linear actuators, those that use optical sensors and those that use Hall Effect sensors. For this comparison we will look at encoders using Hall Effect sensors.

First it’s important to understand how these two components work.

Potentiometer feedback for linear actuators

Potentiometers (link to Wikipedia in new window) are composed of a flexible wire or tape with a resistance proportional to distance. They have three terminals, two reference terminals and a wiper terminal. There is a connection to the beginning of the tape, to the end of the tape, and then a moving wiper that contacts the tape as the potentiometer is moved. The resistance between the ends of the tape and the wiper changes as the potentiometer wiper is moved.

Here is a diagram of a potentiometer:

This is a suitable method of determining position for low duty applications, such a volume control or position feedback of systems that do not move frequently. The more the wiper is moved, the more the wiper can wear on the resistor wire. Theoretically potentiometers may last hundreds of thousands of cycles, however that is not often the case. Potentiometers can often develop dead spots, dead bands, or dead zones due to wear of the resistor material and/or build-up of residue from wearing on the resistor. Dead spots can also be caused by improper installation by the manufacturer. Soldering the wires just a couple seconds too long can damage or destroy the potentiometer. The excessive soldering heat can make the resistor material brittle reducing the life of the potentiometer, or causing it to fail during initial usage.

An example of a new potentiometer being cycled in a test rig. Reading the data with an off-the-shelf micro controller.

As you can see the data shows a nice linear pattern, very predictable and perfect for a closed loop linear actuator controller.

As the potentiometer is cycled, there is evidence of wear as some data points start drifting.

After letting the potentiometer cycle 8000 times we can see that the data is completely unsuitable for any sort of control. Using this to build a closed loop linear actuator controller, would yield erratic behavior. Mechanically, the actuator would have significantly more life, but the feedback system this would be unusable.

Encoder feedback for linear actuators

An alternative would be to use a Hall Effect sensor based encoder. A Hall Effect sensor is a sensor that detects a magnetic field. The Hall Effect sensor is a non-contact sensor, meaning there is no friction between any parts in the sensor.

In the context of linear actuators, a Hall Effect encoder has a magnet on the motor shaft, and one or more Hall Effect sensors near the magnet. As the magnet turns, the Hall Effect sensor detects the pole of the magnet as it comes next to the sensor. This produces a pulse to be used by an attached controller to keep track of position.

When there are two Hall Effect sensors they are offset from one another. This produces two pulses that overlap. The overlapping signals enable direction of travel to be determined.

As there is no contact between the parts of the sensor, there is no wear and tear on this component. The Hall Effect sensor based encoder suffers none of the degradation that a potentiometer based position system has.

Below is an example of raw data from a Hall Effect based encoder being cycled in a test rig, with the data being read with an off-the-shelf micro controller.

After 10,000 cycles the signal maintains the clear, predictable pattern.

If we continue to cycle the motor to 30,000 cycles and beyond, we continue to see the same clear linear pattern.

In terms of consistent performance and precise position data, the Hall Effect sensor based encoder is the clear choice.

Application of sensor data

There are pros and cons with using either potentiometer feedback or Hall Effect encoders. Hall Effect encoders offer a consistent signal over the entire life of the linear actuator. Potentiometer feedback systems can experience significant signal degradation well before the life of the linear actuator.

The benefit to using a potentiometer feedback system in a linear actuator is that the controller doesn’t have to keep state, or remember where the actuator shaft is. The potentiometer offers an absolute position any time the controller reads the sensor, though that reading may not reflect the true position of the linear actuator shaft. Many controller developers refer to potentiometer data as indicating approximately where the shaft of the linear actuator is.

The benefit to using a Hall Effect quadrature encoder is that you get very fine increments of position data with precision that can’t be matched with the typical potentiometer in a linear actuator. The quadrature encoder provides a clear indication of the direction of travel as well as travel distance. The controller just has to keep track of the position or offer ‘home detection’ functionality to reset position to a known state.

Arduino control of a linear actuator with potentiometer feedback

Arduino micro controllers are easy to use, popular and more than powerful enough to control a linear actuator.

The Arduino uses the analog-to-digital (A/D) converter to read a value from 0 to 1023, which can then be translated to a specific location if the application requires.

The linear actuator potentiometer reference wires attach to 5V and GND. The potentiometer wiper attaches to the analog pin A0, or the analog pin you with to use.

In the Arduino Sketch you can use the analogRead function to read the current position of the linear actuator and respond accordingly with your relays or motor driver.

Arduino control of a linear actuator with Hall Sensor quadrature encoder

The Arduino has at least two hardware interrupt pins, which are the best choice for interfacing with the quadrature encoder. With the Arduino Uno the pins 2 and 3 are interrupt pins.

The encoder has a +V, GND, and two signal wires. The +V connects to the Arduino 5V pin, the GND connects to the Arduino GND. The two signal wires connect to pins 2 and 3.

There are a few encoder libraries available for Arduino, making integrating one very simple. Using an encoder library in your Arduino Sketch, you can use the encoder object to read the current position of the linear actuator and respond accordingly with your relays or motor driver.

Conclusion

While linear actuator potentiometer feedback systems provide some benefit to usability, a Hall Effect sensor based encoder has many advantages, particularly precision and longevity, and is also simple to interface with.