Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Raffael Rostagno fd3cc9b19f samples: boards: esp32c6_devkitc: Add QDEC sample for PCNT 2 months ago
..
boards samples: boards: esp32c6_devkitc: Add QDEC sample for PCNT 2 months ago
src samples: sensor: qdec: verify position value 1 year ago
CMakeLists.txt samples: sensor: adding a sample application for the STM32 qdec driver 3 years ago
README.rst samples: sensor: use zephyr:code-sample directive 10 months ago
prj.conf samples: add missing CONFIG_GPIO=y 7 months ago
sample.yaml qdec: Add STM32F2 support via overlay for nucleo_f207zg 2 months ago

README.rst

.. zephyr:code-sample:: qdec
:name: Quadrature Decoder Sensor
:relevant-api: sensor_interface

Get rotation data from a quadrature decoder sensor.

Overview
********

This sample reads the value of the counter which has been configured in
quadrature decoder mode.

It requires:

* an external mechanical encoder
* pin to be properly configured in the device tree

Building and Running
********************

In order to run this sample you need to:

* enable the quadrature decoder device in your board's DT file or board overlay
* add a new alias property named ``qdec0`` and make it point to the decoder
device you just enabled

For example, here's how the overlay file of an STM32F401 board looks like when
using decoder from TIM3 through pins PA6 and PA7:

.. code-block:: dts

/ {
aliases {
qdec0 = &qdec;
};
};

&timers3 {
status = "okay";

qdec: qdec {
status = "okay";
pinctrl-0 = <&tim3_ch1_pa6 &tim3_ch2_pa7>;
pinctrl-names = "default";
st,input-polarity-inverted;
st,input-filter-level = <FDIV32_N8>;
st,counts-per-revolution = <16>;
};
};

Sample Output
=============

Once the MCU is started it prints the counter value every second on the
console

.. code-block:: console

Quadrature decoder sensor test
Position = 0 degrees
Position = 15 degrees
Position = 30 degrees
...


Of course the read value changes once the user manually rotates the mechanical
encoder.

.. note::

The reported increment/decrement can be larger/smaller than the one shown
in the above example. This depends on the mechanical encoder being used and
``st,counts-per-revolution`` value.