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-encoderconst {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.
value1when rotates clockwise,-1when rotates anti-clockwise.
Emitted when the rotary encoder rotates.
Emitted when the switch is pressed.