NEW: MassMind Magnetic High Speed Non-Contact Encoder
Quadrature Encoders typically consist of a spoked pickup wheel attached to the mechanical input. The spokes pass through a pair of optical interruption sensors consisting of:
which generate a pair of phase shifted output streams. This is called a Quadrature Encoder because they have 2 pulses spaced 90 degrees apart. The direction of movement is deturmined by noticing whether the A or B signal stream is leading.
| Reading point V ___ ___ ___ ___ ___ ___ ___ _ Stream A|___| |___| |___| |___| |___| |___| |___| |___| ___ ___ ___ ___ ___ ___ ___ ___ Stream B__| |___| |___| |___| |___| |___| |___| |___| Counter-clockwise <--|--> Clockwise (A;B) Current: Previous ||(0;0) (0;1) (1;0) (1;1) |+---------------------- (0;0) | NC CW cCW Err NC=No change (0;1) | cCW NC Err CW CW=Clockwise (1;0) | CW Err NC cCW cCW=Counter-clockwise (1;1) | Err cCW CW NC Err=Error
This scope trace shows A and B phase quadrature signals as a shaft is reversed from one direction to the other.
Morgans Reglerteknik, mrt at iname.com says:
To decode Quadrature Encoders: Generally,
- Get the two phase bits
- Together with the two bits from the last read form a 4-bit word
- Use this for a 16 entry goto table
- The table will contain 4 each of gotos for count up, count down, no change (glitch) and error (both phase changed, probably overspeed).
Paul B. Webster says:
If you presume that it will occur due to slow processing, then you must allow that you have missed the actual direction of that move. In this case it is best to update the "previous" state with the current one, and wait for the next move. This would most likely happen when the encoder is moving rapidly and the next move will at least be registered as the correct direction. For a mouse, this is perfectly reasonable as absolute accuracy is not required in comparison to smooth movement.If OTOH, you presume that a simultaneous change in state on both is a noise (debounce) phenomenon, than it is handled by *not* updating the previous state; when a reasonable "new" state is eventually detected, the movement direction is determined accordingly. This means however that if the encoder really *did* move two steps between polling, the next step will be indicated in the *wrong* direction.
Decoding Quadrature Encoders with a PIC
Decoding Quadrature Encoders with an SX
Postscript for printing an encoder disk See also: Postscript@
December 2003 MassMind newsletter Useing a "vernear" arrangement of low resolution sensors to accuratly sense a high resolution pattern.
Grey Code / Single Track Grey Code Encoders
David
A Cary Says: " "Quadrature Encoder Inside an R/C Servo" by Giuseppe Marullo
has detailed photographs, schematics, and step-by-step instructions: "
James
Newton replies: Now at
http://www.portlandrobotics.org/index.php?id=77
See also:
Mechanical Rotary Encoders can cost as little as $4.70. E.g. The GreyHill unit from Digikey (GH3071-ND) qty 1
Archive: