1. Encoder and Applications Overview
An encoder is an electromechanical device that can measure motion or position. Most encoders use optical sensors to provide electrical signals in the form of pulse trains, which can, in turn, be translated into motion, direction, or position.
|Rotary encoders are used to measure the rotational motion of a shaft. Figure 1 shows the fundamental components of a rotary encoder, which consists of a light-emitting diode (LED), a disk, and a light detector on the opposite side of the disk. The disk, which is mounted on the rotating shaft, has patterns of opaque and transparent sectors coded into the disk. As the disk rotates, the opaque segments block the light and, where the glass is clear, light is allowed to pass. This generates square-wave pulses, which can then be interpreted into position or motion.|
Encoders usually have from 100 to 6,000 segments per revolution. This means that these encoders can provide 3.6 deg of resolution for the encoder with 100 segments and 0.06 deg of resolution for the encoder with 6,000 segments.
Linear encoders work under the same principle as rotary encoders except that instead of a rotating disk, there is a stationary opaque strip with transparent slits along its surface, and the LED-detector assembly is attached to the moving body.
Figure 1. Optical Encoder Components
An encoder with one set of pulses would not be useful because it could not indicate the direction of rotation. Using two code tracks with sectors positioned 90 deg out of phase (Figure 2), the two output channels of the quadrature encoder indicate both position and direction of rotation. If A leads B, for example, the disk is rotating in a clockwise direction. If B leads A, then the disk is rotating in a counter-clockwise direction. Therefore, by monitoring both the number of pulses and the relative phase of signals A and B, you can track both the position and direction of rotation.
Figure 2. Quadrature Encoder A and B Output Signals
In addition, some quadrature encoders include a third output channel – called a zero or reference signal – which supplies a single pulse per revolution. You can use this single pulse for precise determination of a reference position. In the majority of encoders, this signal is called the Z-Terminal or the index.
So far, this document has addressed only what are called single-ended incremental quadrature encoders. These are called single-ended because the A and B signals are both referenced to ground, so there is one wire (or end) per signal. Another commonly used type of encoder is a differential encoder, where there are two lines per each A and B signal. The two lines for the A signal are A’ and A, and the two lines for the B signal are B’ and B. This type of configuration is also called push-pull because all four lines are always supplying a known voltage (either 0 V of Vcc). When A is Vcc, A’ is 0 V , and when A is 0 V, A’ is Vcc. In the case of a single-ended encoder, A is either Vcc or it floats. Differential encoders are often used in electrically noisy environments because taking differential measurements protects the integrity of the signal.
With incremental encoders, you can measure only changes in position (from which you can determine velocity and acceleration), but it is not possible to determine the absolute position of an object. A third type of encoder, called an absolute encoder, is capable of determining the absolute position of an object. This type of encoder has alternating opaque and transparent segments like the incremental encoder, but the absolute encoder uses multiple groups of segments that form concentric circles on the encoder wheel like a bull’s-eye on a target or dartboard. The concentric circles start in the middle of the encoder wheel and, as the rings go out toward the outside of the ring, they each have double the number of segments than the previous inner ring. The first ring, which is the innermost ring, has one transparent and one opaque segment. The second ring out from the middle has two transparent and two opaque segments, and the third ring has four of each segment. If the encoder has 10 rings, its outermost ring has 512 segments, and if it has 16 rings, the outermost ring has 32,767 segments.
Because each ring of the absolute encoder has double the number of segments of the prior ring, the values form numbers for a binary counting system. In this type of encoder, there is a light source and receiver for every ring on the encoder wheel. This means that the encoder with 10 rings has 10 sets of light sources and receivers, and the encoder with 16 rings has 16 light sources and receivers.
The advantage of the absolute encoder is that you can gear it down so that the encoder wheel makes one revolution during the full length of machine travel. If the length of machine travel is 10 in. and its encoder has 16-bit resolution, the resolution of the machine is 10/65,536, which is 0.00015 in. If the travel for the machine is longer, such as 6 ft, a coarse resolver can keep track of each foot of travel, and a second resolver called the fine resolver can keep track of the position within 1 ft. This means you can gear the coarse encoder so that it makes one revolution over the entire 6 ft distance and gear the fine encoder so that its entire resolution is spread across 1 ft (12 in.).
2. How to Make an Encoder Measurement
To make encoder measurements, you need a basic electronic component called a counter. Based on its several inputs, a basic counter emits a value that represents the number of edges (low to high transitions in the waveform) counted. Most counters have three relevant inputs – gate, source, and up/down. The counter counts the events registered in the source input, and, depending on the state of the up/down line, it either increments the count or decrements it. For example, if the up/down line is “high” the counter increments the count, and if it is “low,” the counter decrements the count. Figure 3 shows a simplified version a counter.
Figure 3. Simplified Model of a Counter
An encoder usually has five wires that you need to connect to the instrument, and, depending on the encoder, these wires vary in color. You can use these wires to provide power to the encoder and to read in the A, B, and Z signals. Figure 4 shows a typical pinout table for an incremental encoder.
Figure 4. Incremental Encoder Pinout
The next step is determining where you should connect each of these wires. Considering the counter described above, signal A is connected to the source terminal, making this the signal from which the pulses are counted. Signal B is connected to the up/down terminal, and you can connect the +5 VDC and ground signals to any power source – in most cases, a digital line in a data acquisition device card suffices.
Once the edges are counted, the next concept you need to consider is how those values are converted to position. The process by which edge counts are converted to position depends on the type of encoding used. There are three basic types of encoding, X1, X2, and X4.
Figure 5 shows a quadrature cycle and the resulting increments and decrements for X1 encoding. When channel A leads channel B, the increment occurs on the rising edge of channel A. When channel B leads channel A, the decrement occurs on the falling edge of channel A.
Figure 5. X1 Encoding
The same behavior holds for X2 encoding except the counter increments or decrements on each edge of channel A, depending on which channel leads the other. Each cycle results in two increments or decrements, as shown in Figure 6.
Figure 6. X2 Encoding
The counter increments or decrements similarly on each edge of channels A and B for X4 encoding. Whether the counter increments or decrements depends on which channel leads the other. Each cycle results in four increments or decrements, as shown in Figure 7.
Figure 7. X4 Encoding
Once you have set the encoding type and counted the pulses, converting to position is a matter of using one of the following formulas:
For Rotational Position
Amount of Rotation is
where N = number of pulses generated by the encoder per shaft revolution
x = encoding type
For Linear Position
Amount of displacement is
Where PPI = pulses per inch (a parameter specific to each encoder)