Code Monkey home page Code Monkey logo

rotary-encoder's Introduction

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

npm install https://github.com/niklauslee/rotary-encoder

Usage

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 <number> Pin number of CLK.
  • dtPin <number> Pin number of DT.
  • swPin <number> 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.

rotary-encoder's People

Contributors

niklauslee avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.