Difference between revisions of "STM32 Rotary Encoder"

From Stm32World Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
[[Category:STM32]][[Category:STM32 Development]][[Category:STM32 HAL]]{{metadesc|How to handle rotary encoders using STM32 HAL}}
 
[[Category:STM32]][[Category:STM32 Development]][[Category:STM32 HAL]]{{metadesc|How to handle rotary encoders using STM32 HAL}}
[[File:Rotary Encoder w. debounce circuitry.jpg|thumb]]
+
[[File:Rotary Encoder w. debounce circuitry.jpg|thumb|Rotary encoder on de-bouncing breakout board]]
 
Rotary Encoders are devices which will generate pulses when they are turned.
 
Rotary Encoders are devices which will generate pulses when they are turned.
  
 
Typically they will have two outputs with the pulses out of phase.  By checking which pulse "comes first" the direction of the turn can be determined.  It is not overly complicated to handle this manually, for example by hooking the signals up to an external GPIO Interrupt.
 
Typically they will have two outputs with the pulses out of phase.  By checking which pulse "comes first" the direction of the turn can be determined.  It is not overly complicated to handle this manually, for example by hooking the signals up to an external GPIO Interrupt.
  
 +
{{clear}}
 
== Rotary encoder de-bouncing ==
 
== Rotary encoder de-bouncing ==
  

Revision as of 10:12, 26 July 2021

Rotary encoder on de-bouncing breakout board

Rotary Encoders are devices which will generate pulses when they are turned.

Typically they will have two outputs with the pulses out of phase. By checking which pulse "comes first" the direction of the turn can be determined. It is not overly complicated to handle this manually, for example by hooking the signals up to an external GPIO Interrupt.

Rotary encoder de-bouncing

Rotary encoders are build with mechanical contacts and they are prone to "bouncing" (one press generate more than one interrupt". The "signals" can be cleaned up by implementing a low-pass filter like this:

Rotary debounce.png

I just happened to have a few of those rotary encoder breakout boards lying around.