Kaluma library for rotary encoder with a push switch (KY-040)
Here is a wiring example.
Raspberry Pi Pico | Rotary Encoder |
---|---|
3V3 | + |
GND | GND |
GP0 | CLK |
GP1 | DT |
GP2 | SW |
npm install https://github.com/niklauslee/rotary-encoder
const {RotaryEncoder} = require('rotary-encoder');
const clkPin = 0;
const dtPin = 1;
const swPin = 2;
pinMode(clkPin, INPUT); // external pull-up.
pinMode(dtPin, INPUT); // external pull-up.
pinMode(swPin, INPUT_PULLUP); // interal pull-up.
const encoder = new RotaryEncoder(clkPin, dtPin, swPin);
encoder.on('rotate', (value) => {
console.log(value);
});
encoder.on('click', () => {
console.log('click');
});
A class encapulating a rotary encoder.
Create an instance of RotaryEncoder class. You have to set pin mode before creating an instance.
clkPin
<number>
Pin number of CLK.dtPin
<number>
Pin number of DT.swPin
<number>
Pin number of SW (switch).
Close the rotary encoder. It closes all watchers and timer for detecting signal changes of the encoder.
value
1
when rotates clockwise,-1
when rotates anti-clockwise.
Emitted when the rotary encoder rotates.
Emitted when the switch is pressed.