Re: [sdiy] Logic for rotary encoders

Roman modular at go2.pl
Tue Jan 21 11:33:08 CET 2003


A scanning matrix with 2 chips:
use 2 bits of available 8-bit port and drive shift registers with it -
 only clock and data. That gives 16 outputs. Make diode matrix of 
encoders, i.e. from each of shift reg. outputs drive 3 encoders 
(common terminal), and pulse terminals of those encoders connect via 
diodes to remaining 6 bits of your port. That gives 16 outs x 6 
inputs = 96 scanning points (48 encoders).
Your firmware will output one high data pulse for each 16 clocks and 
it' knows exactly what group of 3 encoders is currently powered.

hope that helps

Roman

Leif <leifcr at hekta.org>:

>Hi
>
>I have a microcontroller that is going to do some midi and control a 
dsp...
>
>I've been looking into putting some controllers, rotary encoders... 
40 of 
>them to be exact... + some switches as well.
>
>I know that I can do groups of 16 and 16 encoders, and then use 
74hc165 * 4 
>(8 bit parallel to serial shift registers) per group of 16 to do a 
>conversion of the data from 16 parallel inputs to a serial data 
>stream...  but for 40 controllers we would get 12 chips... which is 
a lot.
>
>I only have a 8 bit port to use for the controllers, so I find the 
shift 
>register thing ok, but not very good... Anyone know a better way to 
do it ?
>
>I might of course use a small microcontroller just to take care of 
the 
>counting and data, then send it to the first, but that is a 
expensive design..
>
>cheers,
>Leif
>
>
>



More information about the Synth-diy mailing list