SMT, PCB Electronics Industry News

How to Use a Rotary Encoder

Aug 19, 2021

1. How to Use a Rotary Encoder

Rotary Encoder, Incremental, and Oslash;20mm, 2mm Shaft, 360 PPR, A,B,Z,5VDC

Image 1: Autonics Rotary Encoder E20S2-360-3-V-5-S



Multiturn absolute encoder 10-30V

Image 2: P+F PEPPERL+FUCHS Encoder DSM58N-F3AAGR0BN-1213

The four methods of using a rotary encoder are as follows.

1.1 Modify the Driver

Rotary encoder is a precision instrument. It needs to issue instructions through the program during its use. Driver need to be modified according to the needs of different situations, which determines encoder's effect.

Under normal circumstances, modify the reg file directly, and register a table file, rewrite the dynamic link through adding. In the case where it is determined that the dynamic link has been modified, it needs to be added to the kernel.

1.2 Hardware Interface Connection

After the driver is modified, the hardware interface will be connected. In the connection, there are usually two collector output interfaces A and B.

In order to ensure the line connectivity, you need to operate on a 3.3V resistor. A and B interfaces are plugged into the CPU respectively.

After the hardware interface is successfully connected, check whether the high and low voltage values of the voltage output terminal are correct. For example, after pressing the button, if the P2 port output value is high, it is correct.

1.3 Writing the Stream Interface Driver Program

The writing of the stream interface driver is to prepare for the following interrupt service program. The specific writing step is to create a thread to realize the record of the variable value, and at the same time record whether the value of each port is still high in the case of a line interruption.

1.4 Interruption of Writing Program

The last step is to interrupt the writing of service program.

The instructions of using rotary encoders are as follows:


* Determine the detection object that may be speed measurement, distance measurement, angular displacement or counting.

* It is only used for dynamic process, or it also contains static position or state.

* Confirm whether to choose incremental rotary encoder or absolute rotary encoder.

* Determine the range of motion of the object.

* Confirm whether to select a single-turn or multi-turn absolute rotary encoder.

* Determine the maximum speed or frequency of the object.

* Determine the accuracy required of the object.

* Determine the application parameters of the rotary encoder.

* Using environment. Pay attention to the interface mode and protection level of the rotary encoder.

2. Precautions of Using a Rotary Encoder

*Vibration applied to the rotary encoder will often cause false pulses. Therefore, the installation location is very important. When the number of pulses generated per revolution is larger, and the slot interval of the rotating grooved disc is narrower, the more susceptible it is to vibration. While rotating or stopping at a low speed, the vibration added to the shaft or body of the encoder makes the rotary grooved disc jitter, and false pulses may occur at any time.
*Note the polarity of the power supply when wiring the encoder. If the wiring is wrong, the internal circuit of the encoder may be damaged.
*Wiring should be done when the power supply is OFF. When the power supply is on, if the output line contacts the power supply, the encoder output circuit may be damaged.
*In order to avoid encoder induced noise, try to use the shortest circuit, especially when there is input to an integrated circuit.

3. How to Use an Incremental Encoder

An incremental encoder converts angular motion or position of a shaft into an analog or digital code to identify position or motion. Incremental encoders are one of the most commonly used rotary encoders.


*Incremental rotary encoders with different resolutions which are measured by the number of pulses, ranging from 6 to 5400 or higher generated per resolution. The more pulses, the higher the resolution. It is an important basis for selection.
*There are usually three signal outputs of incremental encoders (six signals for differential): A, B and Z, generally using TTL level, A pulse in the front, B pulse in the back. A and B pulses are 90 degrees apart. Each circle sends out a Z pulse, which can be used as a reference mechanical zero position. Generally, judge the direction by determining A is ahead of B or B is ahead of A.
*If PLC is used to collect data, high-speed counting module can be chosen; if industrial computer is used, choose high-speed counting board; if single-chip microcomputer is used, choose input port with photocoupler.
*It is recommended that B pulse be forward, A pulse should be reverse, and Z origin zero pulse.
*Set up a counting stack in the electronic device.

4. How to Use a Quadrature Encoder

A quadrature encoder measures the speed and direction of a rotating shaft. It is called an incremental rotary encoder. Different types of sensors are used, in which optical and hall effect are both common.

In the picture, it shows that there are two IR sensors on the PCB inside a Rover 5 gearbox. The sensors look at the black and white pattern on one of the gears. No matter what type of sensors are used the output is typically two square waveforms 90° out of phase as shown below.



two square waveforms 90° out of phase

Image 3: The output waveform of phase


You can use either output and simply measure the frequency to monitor the speed of rotation. There are two outputs, so you can determine the direction of shaft rotation by looking at the pattern of their binary numbers.

Depending on the direction of rotation you will get either:

00 = 0
01 = 1
11 = 3
10 = 2

or

00 = 0
10 = 2
11 = 3
01 = 1


By feeding both outputs into an XOR gate (exclusive OR) you will get a square wave with twice the frequency regardless of direction. It allows one interrupt pin to monitor both encoder inputs.



interrupt output waveform is a square wave with twice the frequency

Image 4: The waveform of phase


Look at how to write efficient code to convert these binary inputs into a simple "forward or backward" output.

A 2 dimensional array (matrix) that made the code quick and easy. The binary values above convert to 0,1,3,2 or 0,2,3,1 depending on the direction, which repeats continuously.

Index one dimension of the array and the previous value to index the other dimension by using the current value from the encoder, then you can quickly get a -1, 0, or +1 output. The array looks like this.



the array of current and old value

Image 5: A 2 dimensional array


So, if the value has not changed, the output will be 0. The sequence of 0, 1, 3, 2 gives an output of -1. The sequence of 0, 2, 3, 1 gives an output of +1.

X represents a disallowed state and would most likely occur if the encoder outputs are changing too quickly for your code to keep up. Normally this should not happen. When there is an output of 2, an error occurs, perhaps due to electrical noise or the code being too slow.

If you replace X with 0 then the disallowed state will be ignored.
If you make this a 1 dimensional array:
int QEM [16] = {0,-1,1,2,1,0,2,-1,-1,2,0,1,2,1,-1,0}; // Quadrature Encoder Matrix
To read the array the index is: Old * 4 + New

So the code reads like this:

Old = New;
New = digitalRead (inputA) * 2 + digitalRead (inputB); // Convert binary input to decimal value
Out = QEM [Old * 4 + New];

Hope the above information is helpful to you anyway.

If you have any questions, please come to our website for consultation, we will have professional staff to give you the most professional answers

Website URL: https://okmarts.com/hmi.html

Dec 30, 2021 -

What does the Tire Pressure Sensor Fault Mean?

Dec 30, 2021 -

Car AC Compressor Troubleshooting-- Best Suggestions

Dec 29, 2021 -

Where is Servo Motor and Servo Drive Used?

Dec 29, 2021 -

Basics of Servo Motor You Should Know

Dec 28, 2021 -

How to Replace Refrigerator Compressor

Dec 28, 2021 -

When You Should Use an Absolute Encoder - Pros and Cons of Different Absolute Encoders

Dec 27, 2021 -

6 Reasons for Refrigeration Compressor Not to Start

Dec 27, 2021 -

Why Refrigeration Compressor Oil Deteriorates & How to Add Oil

Dec 26, 2021 -

Japanese Giant Mitsubishi Heavy Industries Goes Into Central Air Conditioners for Home Use

Dec 26, 2021 -

High Temperature Mulfunction of Screw Compressor and Solutions

92 more news from OKmarts Industrial Parts Mall »

Jul 06, 2022 -

Offline PCBA Cleaning Machine HJS-7100,rosin flux, non-clean flux,water-soluble flux cleaning machine

Jul 05, 2022 -

Semiconductor Spray Cleaning Machine HJS-9700,Semiconductor Wafer Cleaning Machine HJS-9700

Jul 04, 2022 -

Pneumatic Stencil Cleaner HJS-9000II,dual chamber stencil cleaning machine

Jul 03, 2022 -

Electric Stencil Cleaner HJS-9500, SMT Electric Stencil Cleaner HJS-9500

Jul 01, 2022 -

Screen Cleaning Machine HJS-4600, SMT Screen Cleaning Machine HJS-4600

Jun 30, 2022 -

Electric Fixture Cleaning Machine HJS-6700, SMT pallet cleaning machine, soldering pallet cleaning machine

Jun 29, 2022 -

Waste Water Treatment Machine RWT-1000, SMT Waste Water Treatment Machine RWT-1000

Jun 28, 2022 -

Gen3's Dr Chris Hunt, CTO submits an insightful paper to the journal of Surface Mount Technology

Jun 28, 2022 -

Squeegee Cleaning Machine HJS-3700,SMT Squeegee Cleaning Machine HJS-3700

Jun 27, 2022 -

Solderstar Celebrates 20 Years of Innovation

See electronics manufacturing industry news »

How to Use a Rotary Encoder news release has been viewed 242 times

fluid dispensing pumps for integration

best reflow oven