/RotaryEncoder

A rotary encoder is a type of position sensor

Primary LanguageCMakeMIT LicenseMIT

RotaryEncoder

STM32 Low Layer(LL) library. A rotary encoder is a type of position sensor that converts the angular position (rotation) of a knob into an output signal that is used to determine what direction the knob is being rotated.

image

Features

  • Good precision
  • Button handling

Add as CPM project dependency

How to add CPM to the project, check the link

CPMAddPackage(
        NAME RotaryEncoder
        GITHUB_REPOSITORY ximtech/RotaryEncoder
        GIT_TAG origin/main)

Project configuration

  1. Start project with STM32CubeMX:
  2. Select: Project Manager -> Advanced Settings -> GPIO -> LL
  3. Generate Code
  4. Add sources to project:
include_directories(${includes} 
        ${ROTARY_ENCODER_DIRECTORY})   # source directories

file(GLOB_RECURSE SOURCES ${sources} 
        ${ROTARY_ENCODER_SOURCES})    # source files
  1. Then Build -> Clean -> Rebuild Project

Wiring

  • image

Usage

The RotaryEncoder.h has default configuration defines. Override them in main.h if needed

#define ENCODER_POLLING_TICK_DELAY 1000
#define BUTTON_HOLD_TIMEOUT_MS 1000
#define BUTTON_CLICK_TIMEOUT_MS 1000
  • Usage example: link