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
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.
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 contructed.
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
- divisor :int¶
The divisor of the quadrature signal. Use 1 for encoders without detents, or encoders with 4 detents per cycle. Use 2 for encoders with 2 detents per cycle. Use 4 for encoders with 1 detent per cycle.
- position :int¶
The current position in terms of pulses. The number of pulses per rotation is defined by the specific hardware and by the divisor.
- deinit(self) None ¶
Deinitializes the IncrementalEncoder and releases any hardware resources for reuse.