Rotary Encoder Module
Introduction
A rotary encoder module is a simple way to add a physical knob to a Raspberry Pi Pico project.
Unlike a potentiometer, a rotary encoder does not output one analog voltage level. Instead, it sends pulses as you turn the knob:
- clockwise
- counterclockwise
- push button press on many modules
That makes it useful for:
- menu navigation
- volume controls
- scrolling through settings
- changing values on a display
- user input for clocks, counters, and dashboards
Components Needed
| Component | Quantity |
|---|---|
| Raspberry Pi Pico or Pico W | 1 |
| Micro USB cable | 1 |
| Breadboard | 1 |
| Jumper wires | Several |
| Rotary encoder module | 1 |
Fritzing Diagram
Add your wiring image here when it is ready.
Recommended image folder:
/img/raspberry-pi-pico/tutorials/rotary-encoder-module
Example usage:
<figure className="docImageCenter">
<img
src="/img/raspberry-pi-pico/tutorials/rotary-encoder-module/rotary-encoder-wiring.png"
alt="Rotary encoder module wiring for Raspberry Pi Pico"
/>
<figcaption>Rotary encoder module connected to Raspberry Pi Pico.</figcaption>
</figure>
Wiring Notes
Typical rotary encoder module pins are:
CLKDTSWVCCGND
Example Pico wiring:
CLK -> GP14DT -> GP15SW -> GP16VCC -> 3.3VGND -> GND
Your exact pins can change depending on the code you want to use.
Basic Code
Replace this section with your demo code.
# Paste your demo code here
Code Explanation
Import the modules
Explain what modules are being used and why.
Set up the encoder pins
Explain which pins are connected to:
CLKDTSW
Detect clockwise and counterclockwise movement
Explain how the code compares the encoder signals to work out direction.
Detect the button press
If your module uses the built-in switch, explain how that part works too.
Example 2 - Show a Counter
Good follow-up example idea:
- turn clockwise to increase a value
- turn counterclockwise to decrease it
- print the current value to the serial monitor
# Add counter example here
Example 3 - Menu Navigation
Another useful example:
- rotate to move through menu items
- press the knob to select
# Add menu example here
Common Problems
The value jumps too quickly
Rotary encoders often need a little debounce handling or state tracking to avoid counting extra steps.
The direction is backwards
Swap the CLK and DT pins in the code or wiring.
The button does not work
- check the
SWpin connection - confirm whether the button is active-low
- make sure ground is shared
Nothing changes when the knob turns
- recheck the GPIO pin numbers
- confirm the encoder has power
- verify the module is connected correctly
Good Project Ideas
Once the rotary encoder is working, you can use it for:
- LCD or OLED menu control
- alarm clock setting
- LED brightness adjustment
- selecting modes in a project
- digital volume-style interfaces
Summary
A rotary encoder module is one of the best ways to add simple physical control to a Raspberry Pi Pico project.
With just a few GPIO pins, you can detect:
- clockwise rotation
- counterclockwise rotation
- button presses
Once you send over your demo code, we can turn this template into a finished tutorial quickly.