Are you talking about the Sparkfun RGB rotary encoder?
For the first set of pins “+” needs to be connected to 3.3v. SWITCH is low but goes high when the encoder’s stem is pressed. The LED pins light the corresponding colour of LED when that pin is grounded (I don’t think there’s an in-built resistor, so don’t forget that). If you look at the separate breakout board the pins are in the order Red, Green, SWITCH, Blue, Positive.
For the other three pins, C is Common and A and B are the directional pins. When you turn the stem in one direction A will connect to Common first and then B will. If you turn the stem in the other direction B connects to Common first, and then A will. If I remember right the example Arduino code which Sparkfun has sets the I/O pins connected to A and B as inputs held-high by pullup resistors, and Common to ground. That means A and B alternately go low depending on which direction you turn the stem in.
Which encoder is this? Could you link to the product page. Might help future tinkerers if we spent a couple of minutes whipping up a little pinout diagram for it.
Holy moly that datasheet is abysmal! My eyes actually hurt from looking at it.
For reference, the dimensional drawing has a much clearer description of the pin layout, although it’s still laid out like a visual puzzle:
Viewed from the top down (which is what I hope “mounting side” means) the row of 5 pins are, left to right, 1, 2, 3, 4, 5, and the 3 bottom pins are A C B (… yeah)
It looks like the LEDs accept a common power supply on pin 5, and pins 4, 2, 1 when pulled to ground will light the Blue, Green and Red LEDs respectively.
Pin 3 is a normally-open switch (for the push-button action of the encoder) which closes and connects pin 3 to pin 5. So you’d need a weak pull-down resistor between pin 3 and ground to set a consistent input value that’s then overridden when it’s connected to pin 5. So the switch will be LOW normally, and HIGH when pushed.
And as @shoe points out, C is the common connection for the rotary encoder itself, and A and B are connected to the wipers which alternate HIGH/LOW in a waveform pattern corresponding to the speed/direction of the encoder.
When turned Clockwise terminal A will go HIGH (or whatever your common signal is) first, and terminal B will follow after (depending on turn speed) and when turned Counter-Clockwise terminal B will go HIGH first, and terminal A will follow.
If you’re using a Raspberry Pi it can be a little tricky to keep up with the encoder at high speed. On an Arduino you should probably use an interrupt on pin A or B and then monitor the state of the other pin.
I should probably point out that when I tried this encoder I found it was very “bouncy” and difficult to get a script to register turns properly. I didn’t have much better luck with software debouncing, and ended up getting the DFRobot encoder which has hardware debouncing. I’m sure you could hook up hardware debouncing for the Sparkfun encoder too but I didn’t try that.