WS2801 Module

Since Origin / Contributor Maintainer Source
2015-07-12 Espressif example, Konrad Beckmann Konrad Beckmann ws2801.c

Caution

This module has an optional dependency to the pixbuf module i.e. it can work without. However, if you compile the firmware without pixbuf the respective features will be missing from this module.

ws2801.init()

Initializes the module and sets the pin configuration.

Syntax

ws2801.init(pin_clk, pin_data)

Parameters

  • pin_clk pin for the clock. Supported are GPIO 0, 2, 4, 5.
  • pin_data pin for the data. Supported are GPIO 0, 2, 4, 5.

Returns

nil

ws2801.write()

Sends data of RGB Data in 24 bits to WS2801. Don't forget to call ws2801.init() before.

Syntax

ws2801.write(data)

Parameters

  • data payload to be sent to one or more WS2801.

Payload type could be:

  • string representing bytes to send It should be composed from an RGB triplet per element.
    • R1 the first pixel's red channel value (0-255)
    • G1 the first pixel's green channel value (0-255)
    • B1 the first pixel's blue channel value (0-255)
      ... You can connect a lot of WS2801...
    • R2, G2, B2 are the next WS2801's Red, Green, and Blue channel values
  • a pixbuf object containing the bytes to send. The pixbuf's type is not checked!

Returns

nil

Example

ws2801.write(string.char(255,0,0, 0,255,0, 0,0,255))