[sdiy] Selecting a rotary encoder, transistions per detent?

Jay Schwichtenberg jschwich53 at comcast.net
Mon Feb 10 00:30:12 CET 2020

For a single encoder I would setup the MCU to interrupt on a low to high 
transition on both the A and B pins. If you get an interrupt on the A 
pin first you are going clockwise, on the B pin you are going counter 
clockwise. I do typically debounce the switch transitions in software 
too. Basically after the interrupt (a few milliseconds) I check to see 
if the state is correct before I say the switch has changed state. If 
you don't you can get multiple interrupts from a 'noisy/bouncy' switch.

Since this is an edge transition and not polling a steady state I think 
it should work for both (don't know which Bourns encoder you're using, 
so I'm assuming they it will work since most work the same way).

If I use more than 2 encoders I'll usually multipex them to save pins. 
To do that you have to ground pin C of the active encoder and use diodes 
between the A and B pins and the pull up resistors. Cathode of the 
diodes goes to the A and B pins, anode to the pull ups.

Jay S.

On 2/9/2020 2:32 AM, Spiros Makris wrote:
> Thank you Jay, I have look at that datasheet. Indeed what is shown is 
> how my encoder behaves (rests at either 00 or 11when turned). My 
> confusion stems from the fact that the bourns encoders also have the 
> same waveforms in the datasheet even though they don't work in a 
> similar fashion.
> Is there any algorithm that can successfully read both types of encoders?
> I am looking for a smooth encoder with a very light touch. I'm 
> guessing I need to look for no detents first. What about the 
> "hardness"? I suspect that's specified by the torque, and I'm looking 
> for the lowest one possible?
> Spiros
> On Sun, Feb 9, 2020 at 1:19 AM Jay Schwichtenberg 
> <jschwich53 at comcast.net <mailto:jschwich53 at comcast.net>> wrote:
>     Shawn,
>     Thanks put I understand encoders and have all sorts of code for
>     encoders. Embedded HW/SW stuff was my day job for a number of years.
>     Thanks
>     Jay S.
>     On 2/8/2020 3:04 PM, Shawn Rakestraw wrote:
>>     I don't know if this will help you or not, but I have just
>>     assembled two projects that use Teensy microcontrollers. This is
>>     the encoder that I used. I can't say for sure how it outputs the
>>     signals.
>>     https://www.mouser.com/ProductDetail/858-EN11-HSM1BF20
>>     Shawn
>>     On Sat, Feb 8, 2020 at 5:44 PM Jay Schwichtenberg
>>     <jschwich53 at comcast.net <mailto:jschwich53 at comcast.net>> wrote:
>>         At least for the Alps pg 267 in the data sheet on the Mouser
>>         web site show you what's going on. This is pretty standard
>>         for this type of encoder.
>>         https://www.mouser.com/datasheet/2/15/alps_alps-s-a0008379064-1-1733314.pdf
>>         Jay S.
>>         On 2/7/2020 5:00 AM, Spiros Makris wrote:
>>>         Hello,
>>>         I am putting together a teensy application that uses rotary
>>>         encoders. I picked up two different ones from my local
>>>         shops, but they seem to have a different output waveform scheme.
>>>         One is an EC11e15204a3 alps (according to the guy selling
>>>         it) and on each detent, the outputs switch between high and
>>>         low. So, 00->11->00 and each transition from 00 to 11 and
>>>         vice versa happens when you hit a detent.
>>>         The other is a bourns by the looks of it, and works
>>>         differently: When resting, it defaults to 00. When turned,
>>>         it briefly becomes 1, then returns to 00.
>>>         (obviously, the turn direction is detected during the
>>>         transitions).
>>>         The second type detects two increments instead of one, as a
>>>         result.
>>>         Where in the datasheet is this specified? Both are sold as
>>>         "2 channel quadrature outputs" but the detection code is
>>>         slightly different (unless I'm missing something?). Is there
>>>         code that can work with both? I am using polling and shift
>>>         registers and don't need any significant accuracy- the delay
>>>         so far feels great.
>>>         Is there a cheaper alternative to the 5pin arrangement of
>>>         the EC11? It seems that those without switches only have 3
>>>         pins- they will be going on a prefboard and the extra
>>>         support would be welcome (I'm not compelled to drill 64
>>>         holes for the side supports :P ).
>>>         Regards,
>>>         Spiros
>>>         _______________________________________________
>>>         Synth-diy mailing list
>>>         Synth-diy at synth-diy.org  <mailto:Synth-diy at synth-diy.org>
>>>         http://synth-diy.org/mailman/listinfo/synth-diy
>>         _______________________________________________
>>         Synth-diy mailing list
>>         Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
>>         http://synth-diy.org/mailman/listinfo/synth-diy
>     _______________________________________________
>     Synth-diy mailing list
>     Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org>
>     http://synth-diy.org/mailman/listinfo/synth-diy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20200209/9833a018/attachment.htm>

More information about the Synth-diy mailing list