Class AddressableLED

  • All Implemented Interfaces:
    AutoCloseable

    public class AddressableLED
    extends Object
    implements AutoCloseable
    A class for driving addressable LEDs, such as WS2812s and NeoPixels.

    Only 1 LED driver is currently supported by the roboRIO.

    • Constructor Detail

      • AddressableLED

        public AddressableLED​(int port)
        Constructs a new driver for a specific port.
        Parameters:
        port - the output port to use (Must be a PWM header, not on MXP)
    • Method Detail

      • setLength

        public void setLength​(int length)
        Sets the length of the LED strip.

        Calling this is an expensive call, so its best to call it once, then just update data.

        The max length is 5460 LEDs.

        Parameters:
        length - the strip length
      • setData

        public void setData​(AddressableLEDBuffer buffer)
        Sets the led output data.

        If the output is enabled, this will start writing the next data cycle. It is safe to call, even while output is enabled.

        Parameters:
        buffer - the buffer to write
      • setBitTiming

        public void setBitTiming​(int lowTime0NanoSeconds,
                                 int highTime0NanoSeconds,
                                 int lowTime1NanoSeconds,
                                 int highTime1NanoSeconds)
        Sets the bit timing.

        By default, the driver is set up to drive WS2812s, so nothing needs to be set for those.

        Parameters:
        lowTime0NanoSeconds - low time for 0 bit
        highTime0NanoSeconds - high time for 0 bit
        lowTime1NanoSeconds - low time for 1 bit
        highTime1NanoSeconds - high time for 1 bit
      • setSyncTime

        public void setSyncTime​(int syncTimeMicroSeconds)
        Sets the sync time.

        The sync time is the time to hold output so LEDs enable. Default set for WS2812.

        Parameters:
        syncTimeMicroSeconds - the sync time
      • start

        public void start()
        Starts the output.

        The output writes continuously.

      • stop

        public void stop()
        Stops the output.