Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/niklauslee/rotary-encoder
Kaluma library for rotary encoder with a push switch (KY-040)
https://github.com/niklauslee/rotary-encoder
kaluma ky-040 rotary-encoder
Last synced: 6 days ago
JSON representation
Kaluma library for rotary encoder with a push switch (KY-040)
- Host: GitHub
- URL: https://github.com/niklauslee/rotary-encoder
- Owner: niklauslee
- License: mit
- Created: 2022-02-17T03:59:06.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-17T04:56:10.000Z (almost 3 years ago)
- Last Synced: 2024-11-20T23:01:13.596Z (2 months ago)
- Topics: kaluma, ky-040, rotary-encoder
- Language: JavaScript
- Homepage:
- Size: 2.93 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rotary Encoder
Kaluma library for rotary encoder with a push switch (KY-040)
# Wiring
Here is a wiring example.
| Raspberry Pi Pico | Rotary Encoder |
| ----------------- | -------------- |
| 3V3 | + |
| GND | GND |
| GP0 | CLK |
| GP1 | DT |
| GP2 | SW |# Install
```sh
npm install https://github.com/niklauslee/rotary-encoder
```# Usage
```js
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');
});
```# API
## Class: RotaryEncoder
A class encapulating a rotary encoder.
### new RotaryEncoder(clkPin, dtPin[, swPin])
Create an instance of RotaryEncoder class. You have to set pin mode before creating an instance.- **`clkPin`** `` Pin number of CLK.
- **`dtPin`** `` Pin number of DT.
- **`swPin`** `` Pin number of SW (switch).### encoder.close()
Close the rotary encoder. It closes all watchers and timer for detecting signal changes of the encoder.
### Event: 'rotate'
- **`value`** `1` when rotates clockwise, `-1` when rotates anti-clockwise.
Emitted when the rotary encoder rotates.
### Event: 'click'
Emitted when the switch is pressed.