1.2.0 • Published 4 years ago

ws2801-pi v1.2.0

Weekly downloads
25
License
MIT
Repository
github
Last release
4 years ago

WS2801-Pi

WS2801-Pi is a module for controlling WS2801 LED strips with a Raspberry Pi via SPI.

Installation

Documentation

The documentation can be found here.

Wiring

Raspberry Piled strip
GNDGND
SCLKClock
MOSIData

You should connect the GND and the V+ of the led strip to an external power supply.

Config

ConfigExplanationTypeDefault
debugRun without sending signals to the gpio ports.boolean false
automaticRenderingAutomatically run show() after changing Leds.boolean false
clockSpeedSet the desired clockSpeed.ClockSpeed2e6 | 2MHz

The clockSpeed can also be changed via ledController.clockSpeed.

Usage

import LedController from 'ws2801-pi';
// const LedController = require('ws2801-pi').default;

const amountOfLedsOnStrip = 100;

const ledController = new LedController(amountOfLedsOnStrip);

let color = {
  red: 255,
  green: 120,
  blue: 0,
};

// Set color of whole led strip
ledController.fillLeds(color);
ledController.show();

color.red = 0;
color.green = 0;
color.blue = 255;

// Set color of single led
ledController.setLed(0, color);
ledController.show();

// Clear led strip (turn all leds off)
ledController
  .clearLeds()
  .show();

Hint: Make sure to call show() after changing leds in order to physically change the leds.

Hint: If automaticRendering is set show() does not have to be called. The rendering can then be awaited via ledController.renderPromise.

Example Animation

import LedController from 'ws2801-pi';
// const LedController = require('ws2801-pi').default;

const amountOfLedsOnStrip = 100;

const ledController = new LedController(amountOfLedsOnStrip);

async function wait(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}

async function animate() {
  let colors = [
    {red: 255, green: 0, blue: 0},
    {red: 0, green: 255, blue: 0},
    {red: 0, green: 0, blue: 255},
    {red: 255, green: 255, blue: 0},
    {red: 255, green: 0, blue: 255},
    {red: 0, green: 255, blue: 255},
    {red: 0, green: 2505, blue: 0},
  ];

  for (const color of colors) {
    for (let ledIndex = 0; ledIndex < amountOfLedsOnStrip; ledIndex++) {
      ledController
        .setLed(ledIndex, color)
        .show();

      await wait(30);
    }

    await wait(300);
  }
}
animate();
1.2.0

4 years ago

1.1.0

4 years ago

1.1.0-alpha.1

4 years ago

1.1.0-alpha.2

4 years ago

1.1.0-alpha.3

4 years ago

1.0.0

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago