I have a subtle issue with an Encoder for Pololu Wheel 42x19mm.
Some time ago I put my Dogbot project aside, because I spent fruitless days trying to get sense out of the encoder Odometry. For more on Dogbot see here:
I’ve now come back to the project, and am diagnosing an issue that relates to one Encoder, which I think may have caused my frustration.
Using the SVP commands, over a 30 second period I get a count of approx 1500 when driving a 30:1 geared motor, into either ab or cd channel for the GOOD Encoder. I think this is OK. On the BAD Encoder, the count is only around 100, and sometimes is negative for a short time, into either ab or cd channel of the SVP.
I’m pretty sure that the SVP and both channels ab and cd of the pic are working as they should.
I didn’t pick this BAD Encoder up initially, as it provides a clean quadrature signal that I can see on my DSO, at the same signal rate as the GOOD Encoder. So the signal looks exactly right, (as it did a year ago, when I put the project aside).
Any thoughts about what could cause this issue? Or, just put it down to bad luck & just order a replacement part?
The encoders have little trimpots to calibrate them; is it possible they got moved on the bad unit? (Did you always have trouble with that encoder?) Is your oscilloscope good enough for you to see the detailed timing of the output edges, to make sure they are actually coming in in the correct order? If the signal really is good, the problem could be in some detail of your installation, such as an IR led from a different sensor shining on one encoder and not the other.
The replacement part came, along with some other new pieces. And now I’ve found time to put it all together I found similar symptoms, but with the “faulty” encoder being the good one previously. However there was a difference, being the error in counts was only about 3:1.
So finally, I got out a digital storage oscilloscope and looked in detail at the wave forms, with the motors actually being driven. Then adjusted the tiny trim-pots to get exactly 50% duty waves generated by each detector.
That fixes the problem, as you suggested it would.
Now, finally, it seems that I have all these encoders (and all other hardware) working.