rotaryio
– Support for reading rotation sensors
The rotaryio
module contains classes to read different rotation encoding schemes. See
Wikipedia’s Rotary Encoder page for more
background.
For more information on working with rotary encoders using this library, see this Learn Guide.
All classes change hardware state and should be deinitialized when they
are no longer needed if the program continues after use. To do so, either
call deinit()
or use a context manager. See
Lifetime and ContextManagers for more info.
Available on these boards
- class rotaryio.IncrementalEncoder(pin_a: microcontroller.Pin, pin_b: microcontroller.Pin, divisor: int = 4)
IncrementalEncoder determines the relative rotational position based on two series of pulses. It assumes that the encoder’s common pin(s) are connected to ground,and enables pull-ups on pin_a and pin_b.
Create an IncrementalEncoder object associated with the given pins. It tracks the positional state of an incremental rotary encoder (also known as a quadrature encoder.) Position is relative to the position when the object is constructed.
- Parameters:
For example:
import rotaryio import time from board import * enc = rotaryio.IncrementalEncoder(D1, D2) last_position = None while True: position = enc.position if last_position == None or position != last_position: print(position) last_position = position
- __enter__() IncrementalEncoder
No-op used by Context Managers.
- __exit__() None
Automatically deinitializes the hardware when exiting a context. See Lifetime and ContextManagers for more info.