luni64 / EncoderTool

The EncoderTool is a library to manage and read out rotary encoders connected either directly or via multiplexers to ARM based boards. Encoder push buttons are supported. Callback functions can be attached to encoder changes and button presses to allow for event driven applications
MIT License
48 stars 12 forks source link

Some schematic explanation needed #40

Closed jsonslim closed 4 months ago

jsonslim commented 11 months ago

Hi!

Thanks for such a nice project!

I want to use a Raspberry pi Pico board as a dedicated device for encoders only. The board has enough pins to use 8 encoders connected directly to it, so I've chosen the direct mux option. The encoders I wanna use are EC11 with 2 encoders pins, one switch and the ground.

Here is the problem: this schematic uses some other type of encoders: https://github.com/luni64/EncoderTool/blob/master/Resources/Extras/Boards/MATRIX/documentation/schematic.jpg

so what is the wiring for the EC11 type? Or is it EC11, but the A1 pin and A2 pin of an encoder is actually the same pin ? Thanks!

jsonslim commented 11 months ago

And also - can you give some hints about the user experience, are there some missing readings, for example if i turn 2 encoders simultaneously, or which schematic runs the most smoothly?

luni64 commented 11 months ago

Here is the problem: this schematic uses some other type of encoders

Actually it uses standard encoders.

image

I just didn't want to draw all those decoupling diodes and therefore defined a schematic symbol containing them. If you look at the board you can see those diodes on the back side: image,

So, just connect the diodes to the pins of the encoders as shown in the symbol and you are good to go.

And also - can you give some hints about the user experience, are there some missing readings, for example if i turn 2 encoders simultaneously, or which schematic runs the most smoothly?

Of course this depends on what else you want to do with the board. As a rule of thumb your code needs to update the encoders (call tick()) with more than 2-3 kHz to work without issues. If you can not guarantee that in loop() you might consider calling tick() from a timer interrupt,

or which schematic runs the most smoothly?

The most easy to use scheme for only 8 encoders is using a 4051 (see here: https://github.com/luni64/EncoderTool/blob/master/Resources/Extras/Boards/MPX_4051/MPX_4051_Schematic.pdf and here: https://github.com/luni64/EncoderTool/blob/master/src/Multiplexed/EncPlex4051.h)

Or, since you wrote that you have enough pins for the encoders you could connect them directly.

I never tested the code with a Pico. Let me know if works or if you need some help.

jsonslim commented 11 months ago

Thanks for the help, I'll post my results here then :)