
A rotary encoder, also called a shaft encoder, is an electro-mechanical device that converts the angular position of a shaft or axle to an analog or digital code, making it an angle transducer. Engineers use rotary encoders in many applications that require precise shaft rotation—including industrial controls, robotics, expensive photographic lenses, computer input devices (such as optomechanical mice and trackballs), and rotating radar platforms. There are two main types: absolute and incremental (relative).
Contents
• 1 Absolute rotary encoder
1.1 Construction
1.1.1 Mechanical Absolute Encoders
1.1.2 Optical Absolute Encoders
1.2 Standard binary encoding o 1.3 Gray encoding
• 2 Single-track absolute rotary encoder
2.1 Encoder output formats
• 3 Incremental rotary encoder
• 4 Sine wave encoder
• 5 Encoder technologies
• 6 See also
• 7 External links
Absolute rotary encoder
Construction
The absolute digital type produces a unique digital code for each distinct angle of the shaft. They come in two basic types: optical and mechanical.
The absolute digital type produces a unique digital code for each distinct angle of the shaft. They come in two basic types: optical and mechanical.
Mechanical Absolute Encoders
A metal disc containing a set of concentric rings of openings is fixed to an insulating disc, which is rigidly fixed to the shaft. A row of sliding contacts is fixed to a stationary object so that each contact wipes against the metal disc at a different distance from the shaft. As the disc rotates with the shaft, some of the contacts touch metal, while others fall in the gaps where the metal has been cut out. The metal sheet is connected to a source of electric current, and each contact is connected to a separate electrical sensor. The metal pattern is designed so that each possible position of the axle creates a unique binary code in which some of the contacts are connected to the current source (i.e. switched on) and others are not (i.e. switched off).
Optical Absolute Encoders
The optical encoder's disc is made of glass with transparent and opaque areas. A light source and photo detector array reads the optical pattern that results from the disc's position at any one time.
This code can be read by a controlling device, such as a microprocessor, to determine the angle of the shaft.
The absolute analog type produces a unique dual analog code that can be translated into an absolute angle of the shaft (by using a special algorithm).
This code can be read by a controlling device, such as a microprocessor, to determine the angle of the shaft.
The absolute analog type produces a unique dual analog code that can be translated into an absolute angle of the shaft (by using a special algorithm).
Standard binary encoding
An example of a binary code, in an extremely simplified encoder with only three contacts, is shown below.
Standard Binary Encoding
Sector Contact 1 Contact 2 Contact 3 Angle
1 1 off off off
2 0° to 45° 2 off off
3 on 45° to 90° 3 off
4 on off 90° to 135° 4
5 off on on 135° to 180°
6 5 on off off
7 180° to 225° 6 on off
8 on 225° to 270° 7 on
9 on off 270° to 315° 8
10 on on on 315° to 360°
Standard Binary Encoding
Sector Contact 1 Contact 2 Contact 3 Angle
1 1 off off off
2 0° to 45° 2 off off
3 on 45° to 90° 3 off
4 on off 90° to 135° 4
5 off on on 135° to 180°
6 5 on off off
7 180° to 225° 6 on off
8 on 225° to 270° 7 on
9 on off 270° to 315° 8
10 on on on 315° to 360°
In general, where there are n contacts, the number of distinct positions of the shaft is 2n. In this example, n is 3, so there are 2³ or 8 positions.
In the above example, the contacts produce a standard binary count as the disc rotates. However, this has the drawback that if the disc stops between two adjacent sectors, or the contacts are not perfectly aligned, it can be impossible to determine the angle of the shaft. To illustrate this problem, consider what happens when the shaft angle changes from 179.9° to 180.1° (from sector 4 to sector 5). At some instant, according to the above table, the contact pattern changes from off-on-on to on-off-off. However, this is not what happens in reality. In a practical device, the contacts are never perfectly aligned, so each switches at a different moment. If contact 1 switches first, followed by contact 3 and then contact 2, for example, the actual sequence of codes is:
off-on-on (starting position)
on-on-on (first, contact 1 switches on)
on-on-off (next, contact 3 switches off)
on-off-off (finally, contact 2 switches off)
Now look at the sectors corresponding to these codes in the table. In order, they are 4, 8, 7 and then 5. So, from the sequence of codes produced, the shaft appears to have jumped from sector 4 to sector 8, then gone backwards to sector 7, then backwards again to sector 5, which is where we expected to find it. In many situations, this behaviour is undesirable and could cause the system to fail. For example, if the encoder were used in a robot arm, the controller would think that the arm was in the wrong position, and try to correct the error by turning it through 180°, perhaps causing damage to the arm.
In the above example, the contacts produce a standard binary count as the disc rotates. However, this has the drawback that if the disc stops between two adjacent sectors, or the contacts are not perfectly aligned, it can be impossible to determine the angle of the shaft. To illustrate this problem, consider what happens when the shaft angle changes from 179.9° to 180.1° (from sector 4 to sector 5). At some instant, according to the above table, the contact pattern changes from off-on-on to on-off-off. However, this is not what happens in reality. In a practical device, the contacts are never perfectly aligned, so each switches at a different moment. If contact 1 switches first, followed by contact 3 and then contact 2, for example, the actual sequence of codes is:
off-on-on (starting position)
on-on-on (first, contact 1 switches on)
on-on-off (next, contact 3 switches off)
on-off-off (finally, contact 2 switches off)
Now look at the sectors corresponding to these codes in the table. In order, they are 4, 8, 7 and then 5. So, from the sequence of codes produced, the shaft appears to have jumped from sector 4 to sector 8, then gone backwards to sector 7, then backwards again to sector 5, which is where we expected to find it. In many situations, this behaviour is undesirable and could cause the system to fail. For example, if the encoder were used in a robot arm, the controller would think that the arm was in the wrong position, and try to correct the error by turning it through 180°, perhaps causing damage to the arm.
Gray encoding
To avoid the above problem, Gary encoding is used. This is a system of binary counting in which adjacent codes differ in only one position. For the three-contact example given above, the Gray-coded version would be as follows.
Gray Coding
Sector Contact 1 Contact 2 Contact 3 Angle
1 off off off 0° to 45°
2 off off on 45° to 90°
3 off on on 90° to 135°
4 off on off 135° to 180°
5 on on off 180° to 225°
6 on on on 225° to 270°
7 on off on 270° to 315°
8 on off off 315° to 360°
In this example, the transition from sector 4 to sector 5, like all other transitions, involves only one of the contacts changing its state from on to off or vice versa. This means that the sequence of incorrect codes shown in the previous illustration cannot happen here.
4 off on off 135° to 180°
5 on on off 180° to 225°
6 on on on 225° to 270°
7 on off on 270° to 315°
8 on off off 315° to 360°
In this example, the transition from sector 4 to sector 5, like all other transitions, involves only one of the contacts changing its state from on to off or vice versa. This means that the sequence of incorrect codes shown in the previous illustration cannot happen here.
Single-track absolute rotary encoder
the designer moves a contact to a different angular position (but at the same distance from the center shaft), then the corresponding "ring pattern" needs to be rotated the same angle to give the same output. If the most significant bit (the inner ring in Figure 1) is rotated enough, it exactly matches the next ring out. Since both rings are then identical, the inner ring can be omitted, and the sensor for that ring moved to the remaining, identical ring (but offset at that angle from the other sensor on that ring). Those two sensors on a single ring make a quadrature encoder.
For many years, Torsten Sillke and other mathematicians believed that it was impossible to encode position on a single track so that consecutive positions differed at only a single sensor, except for the two-sensor, one-track quadrature encoder. However, in 1994 N. B. Spedding registered a patent (NZ Patent 264738) showing it was possible with several examples. See
For many years, Torsten Sillke and other mathematicians believed that it was impossible to encode position on a single track so that consecutive positions differed at only a single sensor, except for the two-sensor, one-track quadrature encoder. However, in 1994 N. B. Spedding registered a patent (NZ Patent 264738) showing it was possible with several examples. See
Gray code for details.
Encoder output formats
In commercial absolute encoders there are several formats for transmission of absolute encoder data, including parallel binary, SSI, ISI, Profibus, CAN DeviceNet, CANopen, Endat and Hiperface, depending on the manufacturer of the device
Incremental rotary encoder
An incremental rotary encoder, also known as a quadrature encoder or a relative rotary encoder, has two outputs called quadrature outputs. They can be either mechanical or optical. In the optical type there are two gray coded tracks, while the mechanical type has two contacts that are actuated by cams on the rotating shaft. The mechanical type requires debouncing and is typically used as digital potentiometers on equipment including consumer devices. Most modern home and car stereos use mechanical rotary encoders for volume. Due to the fact the mechanical switches require debouncing, the mechanical type are limited in the rotational speeds they can handle. The incremental rotary encoder is the most widely used of all rotary encoders due to its low cost: only two sensors are required.
The fact that incremental encoders use only two sensors does not compromise their accuracy. One can find in the market incremental encoders with up to 10,000 counts per revolution, or more.
There can be an optional third output: reference, which happens once every turn. This is used when there is the need of an absolute reference, such as positioning systems.
The optical type is used when higher RPMs are encountered or a higher degree of precision is required.
Incremental encoders are used to track motion and can be used to determine position and velocity. This can be either linear or rotary motion. Because the direction can be determined, very accurate measurements can be made.
The fact that incremental encoders use only two sensors does not compromise their accuracy. One can find in the market incremental encoders with up to 10,000 counts per revolution, or more.
There can be an optional third output: reference, which happens once every turn. This is used when there is the need of an absolute reference, such as positioning systems.
The optical type is used when higher RPMs are encountered or a higher degree of precision is required.
Incremental encoders are used to track motion and can be used to determine position and velocity. This can be either linear or rotary motion. Because the direction can be determined, very accurate measurements can be made.