Rotary Encoder Error

I recently measured two rotary encoders for two motors spinning at the same speed. I have a question. I attached a plot, I will refer to. So my setup I had to motors spinning freely and I decoded the rotary quadrature encoder signal for both motors whilst sampling twice faster, than half the period of one of the quadrature phases. My problem is that the encoders even though they are spinning at the same rate, the left encoder seems to increase much faster than the right one. I took both the incremental counts, and plotted an error vs. a time.

error plot.bmp (227 KB)

How fast are the motors turning? How many counts per turn in the encoders? How do you ensure that the motors are turning at the same speed?

A couple of points

1) Just because you supply the same amount of power to each motor does not mean they will be turning at the same rate. In fact, you can pretty much assume that they will not.

2) Do you need to debounce your inputs? If the encoders are a little "jiggly" then you might get several pulses for each transition, which will artificially inflate the encoder counts.

3) If you are using the encoder signal as an interrupt, then you might need to clean up the signal. I have found that a Schmitt trigger does the trick. The part number is 74LS14 - they are cheap and easily available.


Thanks you