Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit ANO Rotary Navigation Encoder Breakout: Examples, Pinouts, and Specs

Image of Adafruit ANO Rotary Navigation Encoder Breakout
Cirkit Designer LogoDesign with Adafruit ANO Rotary Navigation Encoder Breakout in Cirkit Designer

Introduction

The Adafruit ANO Rotary Navigation Encoder Breakout is a compact and versatile rotary encoder module designed for easy integration into electronic projects. It features a high-resolution rotary encoder for precise position feedback and a built-in push button for additional input functionality. This breakout board is ideal for creating user interfaces, menu navigation systems, and control panels in a wide range of applications.

Explore Projects Built with Adafruit ANO Rotary Navigation Encoder Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Nano Controlled OLED Display with Rotary Encoder and Button Input
Image of space impact: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
This circuit features an Arduino Nano microcontroller interfaced with a 0.96" OLED display for visual output, a rotary encoder for input with position and button press detection, and an additional tactile switch for user input. The OLED communicates with the Arduino via I2C, while the encoder and switch provide interactive control, all powered by the Arduino's 5V supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Nano Controlled Optical Encoder with I2C LCD Display
Image of G7_DISTANCE_CALCULATOR: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
This circuit features an Arduino Nano microcontroller interfaced with an Optical Encoder Sensor Module and an I2C LCD 16x2 Screen. The encoder module is connected to the Arduino's digital pin D2 for signal input, while the LCD screen is connected via I2C protocol to pins A4 (SDA) and A5 (SCL) for data display. Power is managed through a 18650 Li-Ion battery connected via a rocker switch to the Arduino's VIN pin, with common ground and 5V connections distributed among the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
RP2040 Zero Rotary Encoder Interface with Serial Monitoring
Image of test: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
This circuit features an RP2040 Zero microcontroller interfaced with a rotary encoder. The encoder's clock, data, and switch pins are connected to the microcontroller's GPIO pins 29, 28, and 27, respectively, allowing the microcontroller to read the encoder's state and print it to the serial monitor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Leonardo-Based Gaming Steering Wheel with Pedals and Gear Shifter
Image of DIY Steering Wheel: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
This circuit is a gaming steering wheel system with 3 pedals and a gear shifter, interfaced with an Arduino Leonardo. It includes a 600 PPR optical rotary encoder for steering, three potentiometers for pedal input, and multiple push buttons connected via an IO expander for gear shifting and additional controls. The Arduino processes inputs from these components and communicates the data for further processing or display.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit ANO Rotary Navigation Encoder Breakout

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of space impact: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
Arduino Nano Controlled OLED Display with Rotary Encoder and Button Input
This circuit features an Arduino Nano microcontroller interfaced with a 0.96" OLED display for visual output, a rotary encoder for input with position and button press detection, and an additional tactile switch for user input. The OLED communicates with the Arduino via I2C, while the encoder and switch provide interactive control, all powered by the Arduino's 5V supply.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of G7_DISTANCE_CALCULATOR: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
Arduino Nano Controlled Optical Encoder with I2C LCD Display
This circuit features an Arduino Nano microcontroller interfaced with an Optical Encoder Sensor Module and an I2C LCD 16x2 Screen. The encoder module is connected to the Arduino's digital pin D2 for signal input, while the LCD screen is connected via I2C protocol to pins A4 (SDA) and A5 (SCL) for data display. Power is managed through a 18650 Li-Ion battery connected via a rocker switch to the Arduino's VIN pin, with common ground and 5V connections distributed among the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of test: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
RP2040 Zero Rotary Encoder Interface with Serial Monitoring
This circuit features an RP2040 Zero microcontroller interfaced with a rotary encoder. The encoder's clock, data, and switch pins are connected to the microcontroller's GPIO pins 29, 28, and 27, respectively, allowing the microcontroller to read the encoder's state and print it to the serial monitor.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of DIY Steering Wheel: A project utilizing Adafruit ANO Rotary Navigation Encoder Breakout in a practical application
Arduino Leonardo-Based Gaming Steering Wheel with Pedals and Gear Shifter
This circuit is a gaming steering wheel system with 3 pedals and a gear shifter, interfaced with an Arduino Leonardo. It includes a 600 PPR optical rotary encoder for steering, three potentiometers for pedal input, and multiple push buttons connected via an IO expander for gear shifting and additional controls. The Arduino processes inputs from these components and communicates the data for further processing or display.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • User interface navigation for embedded systems
  • Menu selection and scrolling in control panels
  • Volume or parameter adjustment in audio and video equipment
  • Robotics and automation control
  • DIY electronics projects requiring precise input control

Technical Specifications

The Adafruit ANO Rotary Navigation Encoder Breakout is designed for ease of use and compatibility with microcontrollers like Arduino. Below are its key technical details:

Key Technical Details

  • Operating Voltage: 3.3V or 5V (logic level compatible)
  • Interface: Digital (rotary encoder and push button)
  • Rotary Encoder Resolution: 24 pulses per revolution (PPR)
  • Push Button: Integrated momentary switch
  • Dimensions: 20mm x 20mm (excluding pins)
  • Mounting Holes: 2 x M2.5 for secure attachment
  • Connector Type: 5-pin header (GND, VCC, SW, DT, CLK)

Pin Configuration and Descriptions

The breakout board has a 5-pin header for easy connection. Below is the pinout:

Pin Name Description
1 GND Ground connection for the module.
2 VCC Power supply input (3.3V or 5V).
3 SW Push button output (active LOW).
4 DT Data pin for the rotary encoder (used for direction detection).
5 CLK Clock pin for the rotary encoder (used for detecting rotation steps).

Usage Instructions

The Adafruit ANO Rotary Navigation Encoder Breakout is straightforward to use in a circuit. Below are the steps and best practices for integrating it into your project.

How to Use the Component in a Circuit

  1. Connect the Power Supply:
    • Connect the VCC pin to the 3.3V or 5V power supply of your microcontroller.
    • Connect the GND pin to the ground of your circuit.
  2. Connect the Rotary Encoder Pins:
    • Connect the CLK and DT pins to two digital input pins on your microcontroller.
  3. Connect the Push Button:
    • Connect the SW pin to another digital input pin on your microcontroller.
  4. Add Pull-Up Resistors (if necessary):
    • If your microcontroller does not have internal pull-up resistors, add external pull-up resistors (10kΩ) to the SW, CLK, and DT pins.

Arduino Example Code

Below is an example Arduino sketch to read the rotary encoder and push button inputs:

// Define pin connections for the rotary encoder
#define CLK 2  // Clock pin connected to digital pin 2
#define DT 3   // Data pin connected to digital pin 3
#define SW 4   // Push button pin connected to digital pin 4

int lastStateCLK;  // Variable to store the previous state of the CLK pin
int currentStateCLK;  // Variable to store the current state of the CLK pin
int counter = 0;  // Counter to track the encoder position

void setup() {
  pinMode(CLK, INPUT);  // Set CLK pin as input
  pinMode(DT, INPUT);   // Set DT pin as input
  pinMode(SW, INPUT_PULLUP);  // Set SW pin as input with internal pull-up resistor

  // Read the initial state of the CLK pin
  lastStateCLK = digitalRead(CLK);

  // Initialize serial communication for debugging
  Serial.begin(9600);
}

void loop() {
  // Read the current state of the CLK pin
  currentStateCLK = digitalRead(CLK);

  // Check if the state of CLK has changed
  if (currentStateCLK != lastStateCLK) {
    // If the DT pin state matches the CLK state, the encoder is rotating clockwise
    if (digitalRead(DT) != currentStateCLK) {
      counter++;
    } else {
      // Otherwise, the encoder is rotating counterclockwise
      counter--;
    }

    // Print the current counter value to the serial monitor
    Serial.print("Position: ");
    Serial.println(counter);
  }

  // Update the last state of the CLK pin
  lastStateCLK = currentStateCLK;

  // Check if the push button is pressed
  if (digitalRead(SW) == LOW) {
    Serial.println("Button Pressed!");
    delay(200);  // Debounce delay
  }
}

Important Considerations and Best Practices

  • Debouncing: Rotary encoders and push buttons may produce noise or false signals. Use software debouncing or hardware filters to ensure reliable operation.
  • Power Supply: Ensure the module is powered with the correct voltage (3.3V or 5V) to avoid damage.
  • Pull-Up Resistors: Use pull-up resistors for the SW, CLK, and DT pins if your microcontroller does not have internal pull-ups.
  • Secure Mounting: Use the mounting holes to securely attach the breakout board to your project.

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Response from the Encoder:

    • Verify all connections, especially the CLK and DT pins.
    • Ensure the power supply voltage matches the module's requirements.
    • Check for loose or broken wires.
  2. Incorrect Direction Detection:

    • Swap the CLK and DT pin connections if the direction is reversed.
    • Ensure the code logic matches the encoder's behavior.
  3. Push Button Not Working:

    • Check the SW pin connection and ensure it is configured as an input.
    • Verify the pull-up resistor is enabled (internal or external).
  4. Erratic or Noisy Signals:

    • Add a small capacitor (e.g., 0.1µF) between the CLK and DT pins and ground to filter noise.
    • Implement software debouncing in your code.

FAQs

Q: Can I use this module with a Raspberry Pi?
A: Yes, the Adafruit ANO Rotary Navigation Encoder Breakout is compatible with Raspberry Pi. Use GPIO pins for the CLK, DT, and SW connections, and ensure proper pull-up resistors are configured.

Q: What is the resolution of the rotary encoder?
A: The rotary encoder provides 24 pulses per revolution (PPR), allowing for precise position feedback.

Q: Can I use this module with 3.3V logic microcontrollers?
A: Yes, the module is compatible with both 3.3V and 5V logic levels.

Q: How do I debounce the push button?
A: You can use a software debounce routine (e.g., delay after detecting a button press) or add a hardware debounce circuit with a resistor and capacitor.

By following this documentation, you can effectively integrate the Adafruit ANO Rotary Navigation Encoder Breakout into your projects and troubleshoot any issues that arise.