SparkFun Support and Front Desk will be closed on Thursday 11/14 from 1-2:30pm for a company event. Please plan to pick up your orders before or after this timeframe.
This 1024 pulse per rotation rotary encoder outputs gray code which you can interpret using a microcontroller and find out which direction the shaft is turning and by how much. This allows you to add feedback to motor control systems. Encoders of this kind are often used in balancing robots and dead reckoning navigation but it could also be used as a very precise input knob.
Based on 8 ratings:
2 of 2 found this helpful:
I built a persistence of motion LED display for a wall clock using one of these bad boys. It has great precision and very little resistance or inertia, so it worked great for my project. The only problem is that it seems to have lost accuracy over time. I believe I put too much stress perpendicular to the axle. If you use one of these you should take care to reduce stress on the axle.
The measurements are metric, so it was slightly difficult to find a 6mm bolt to mate with the axle at my hardware store.
Four stars because it operates within its advertised limits but I wish it was just a little sturdier for my project. I'm going to buy another one and hope that I damaged it during construction or transportation and not regular use.
Overall good encoders, they are a bit larger than I was expecting, but that's not really an issue. Overall they are pretty robust and work great in pair with the sabertooth and kangaroo motor controller combo. For this price you can't really beat the performance.
I wanted a cheap encoder so I could mock up a HW setup at my desk for testing. I found the build to be pretty good. Had plenty of cable and is pretty much exactly what you would expect. That is except for the Z output. The spec sheet says that the output is low and gives a high signal once a revolution. I found that the z out is actually the inverse of that, it's high and goes low once a revolution. I ended up having to use a transistor and a pull up to make my mock setup consistent but am still a little bummed that the spec-sheet doesn't actual match the encoder.
I combined this with a Phidgets 1047 USB encoder interface, and the combo works very well. The index mark signal is very useful in centering the encoder readings. This is going into an installation where it will get heavy use, and I'm hopeful it holds up well over time.
The encoders work really well. They mount easily and the flex couplings work great to absorb any imperfect alignments. They also come with lots of extra wire so they can be run quite a long distance which I appreciated. One thing to be aware of is that they have a lot of resolution with 1024 ticks per revolution. This is great but users should be aware that depending on expected RPM it might be to much for something like an Arduino to keep up with. For example I am running 4 of these at 50RPM which is over 2 million interrupts per second. I had to use a phidgets FPGA board in order to keep up with the number of interrupts. This isn't a problem, just something that users should be aware of. I do have a minor criticism though, the wire outputs are color coded very funny. For example brown is VCC and blue is ground while orange is Z output. Not a real problem but it was a bit confusing at first.
Happy with this encoder, so far so good. When this site was out of stock for a long duration Yumo themselves were kind enough to send them directly also. Can recommend.
For the cost, this is a pretty good optical encoder with 1024 pulses per revolution. If you count rising and falling pulses for "A" and "B" you'll have a 4x resolution (4096 pulse per rev) encoder! Also don't forget this encoder's "Z" connection gives one pulse per revolution for absolution positioning :)
The specs for this encoder suggest that the output is 2k to rail voltage (brown wire) then a transistor to ground. I was trying to connect this up to an fpga board which accepts the LVTTL voltage levels. <=3.3 The quickest and cheapest way to achieve this is with a voltage divider. That would suggest a 1.8k resistor from the output to ground should do the trick. NOPE.
If you measure the resistance between the channels you will get 6.6k. (Don't forget to remove the power for this test.) That suggests that the resistance is 3.3k to rail.
After carefully opening up the back cover, I have verified finding three 3.3k surface mount resistors.
But wait... The unloaded high level output should be equal to the brown wire voltage, right? Wrong again. If 5v is applied to the brown wire, the high level output is ~4.2v.
I won't gripe too much the high level voltage output. Perhaps it is a reverse polarity protection? However I won't test this theory out. (Kinda like fully testing fuses before to putting them into service.) It is still something to be aware of.
I think I will be trying a different strategy: Zener the channels? Diode to rail? Or perhaps remove the 3.3k and make the encoder open collector.