2026-11-03 12:13:48 +03:00
2026-11-03 12:13:48 +03:00
2026-01-02 08:46:49 +03:00
2026-01-02 08:46:49 +03:00
2026-10-04 22:24:57 +03:00
2026-11-03 12:13:48 +03:00

ESP32 ESP-IDF component for inclinometer (via optical rotary encoder)

Features

  1. Quadrature encoder support with configurable GPIO pins.
  2. Configurable pull-up resistor enablement for encoder channels.
  3. Support for both clockwise and counter-clockwise rotation directions.
  4. Configurable pulses per revolution for accurate angle calculation.
  5. Position tracking with get and reset operations.
  6. PCNT glitch filter for noise rejection (1000ns).
  7. Multiple inclinometer instances support.

Using

In an existing project, run the following command to install the components:

cd ../your_project/components
git clone https://github.com/aZholtikov/zh_inclinometer

In the application, add the component:

#include "zh_inclinometer.h"

Example

#include "zh_inclinometer.h"

zh_inclinometer_handle_t *inclinometer_handle = NULL;

void app_main(void)
{
    esp_log_level_set("zh_inclinometer", ESP_LOG_ERROR);
    zh_inclinometer_init_config_t config = ZH_INCLINOMETER_INIT_CONFIG_DEFAULT();
    config.a_gpio_number = GPIO_NUM_26;
    config.b_gpio_number = GPIO_NUM_27;
    config.encoder_pulses = 3600;
    zh_inclinometer_init(&config, &inclinometer_handle);
    for (;;)
    {
        float angle = 0;
        zh_inclinometer_get(&inclinometer_handle, &angle);
        printf("Inclinometer position is %0.2f degrees.\n", angle);
        vTaskDelay(100 / portTICK_PERIOD_MS);
    }
}
S
Description
ESP32 ESP-IDF component for inclinometer (via optical rotary encoder).
Readme Apache-2.0
92 KiB
0 Stars 1 Watchers 0 Forks
Languages
C 98.9%
CMake 1.1%