kopia lustrzana https://github.com/peterhinch/micropython-samples
ENCODERS.md: minor fixes.
rodzic
2a08f14a67
commit
5843b7b5a3
|
@ -164,15 +164,15 @@ the rate at which callbacks occur.
|
||||||
anthropoid ape it's debatable whether it produces anything useful :)
|
anthropoid ape it's debatable whether it produces anything useful :)
|
||||||
3. `encoder_rp2.py` Version specific to Raspberry Pico RP2 chip. This uses the
|
3. `encoder_rp2.py` Version specific to Raspberry Pico RP2 chip. This uses the
|
||||||
PIO and Viper code to achieve fast response - upto ~10K transitions/s.
|
PIO and Viper code to achieve fast response - upto ~10K transitions/s.
|
||||||
4. `encoder.py` An old Pyboard-specific version.
|
4. [Asynchronous driver](https://github.com/peterhinch/micropython-async/blob/master/v3/docs/DRIVERS.md#6-quadrature-encoders)
|
||||||
5. [Asynchronous driver](https://github.com/peterhinch/micropython-async/blob/master/v3/docs/DRIVERS.md#6-quadrature-encoders)
|
|
||||||
for `uasyncio` applications.
|
for `uasyncio` applications.
|
||||||
|
|
||||||
These were written for encoders producing logic outputs. For switches, adapt
|
For mechanical encoders consider the need for pull up or pull down resistors.
|
||||||
the pull definition to provide a pull up or pull down as required, or provide
|
|
||||||
physical resistors. The latter is my preferred solution as the internal
|
Applications which just require the maintenance of a position count would
|
||||||
resistors on most platforms have a rather high value posing a risk of slow
|
normally use `encoder_portable.py`. Where callbacks are required, or tracking
|
||||||
edges.
|
of detent positions is needed, the asynchronous driver is preferred for reasons
|
||||||
|
covered in this document.
|
||||||
|
|
||||||
# 7. Algorithm
|
# 7. Algorithm
|
||||||
|
|
||||||
|
@ -267,7 +267,9 @@ required to track these exactly, for example triggering a callback on each
|
||||||
[asynchronous driver](https://github.com/peterhinch/micropython-async/blob/master/v3/docs/DRIVERS.md#6-quadrature-encoders)
|
[asynchronous driver](https://github.com/peterhinch/micropython-async/blob/master/v3/docs/DRIVERS.md#6-quadrature-encoders)
|
||||||
with a division ratio of 4. Rate limiting is essential. Testing with a
|
with a division ratio of 4. Rate limiting is essential. Testing with a
|
||||||
mechanical encoder with Schmitt trigger preconditioning (see below) produced
|
mechanical encoder with Schmitt trigger preconditioning (see below) produced
|
||||||
good results with tracking maintained exactly.
|
good results with tracking maintained exactly. Some encoders, described as
|
||||||
|
"half step", have two detents per revolution. These can be handled by setting
|
||||||
|
`div=2` on this driver.
|
||||||
|
|
||||||
It is almost certainly impossible to provide exact tracking on platforms which
|
It is almost certainly impossible to provide exact tracking on platforms which
|
||||||
support only soft IRQ's because garbage collection results in interrupt latency
|
support only soft IRQ's because garbage collection results in interrupt latency
|
||||||
|
|
Ładowanie…
Reference in New Issue