led_strip - RMT-based driver for WS2812B/SK6812/APA106 LED strips
Warning
This component does not support ESP8266 RTOS SDK!
Warning
If you try to use this driver simultaneously with Wi-Fi, you may encounter RMT transmission bugs. To avoid them, simply initialize device from the task bound to the second processor core.
Interrupt handlers assigned during the initialization of the RMT driver are bound to the core on which the initialization took place.
- group led_strip
RMT-based ESP-IDF driver for WS2812B/SK6812/APA106/SM16703 LED strips.
Copyright (c) 2020 Ruslan V. Uss unclerus@gmail.com
MIT Licensed as described in the file LICENSE
Defines
-
LED_STRIP_BRIGHTNESS
Enums
Functions
-
void led_strip_install()
Setup library.
This method must be called before any other led_strip methods
-
esp_err_t led_strip_init(led_strip_t *strip)
Initialize LED strip and allocate buffer memory.
- Parameters:
strip – Descriptor of LED strip
- Returns:
ESP_OK
on success
-
esp_err_t led_strip_free(led_strip_t *strip)
Deallocate buffer memory and release RMT channel.
- Parameters:
strip – Descriptor of LED strip
- Returns:
ESP_OK
on success
-
esp_err_t led_strip_flush(led_strip_t *strip)
Send strip buffer to LEDs.
- Parameters:
strip – Descriptor of LED strip
- Returns:
ESP_OK
on success
-
bool led_strip_busy(led_strip_t *strip)
Check if associated RMT channel is busy.
- Parameters:
strip – Descriptor of LED strip
- Returns:
true if RMT peripherals is busy
-
esp_err_t led_strip_wait(led_strip_t *strip, TickType_t timeout)
Wait until RMT peripherals is free to send buffer to LEDs.
- Parameters:
strip – Descriptor of LED strip
timeout – Timeout in RTOS ticks
- Returns:
ESP_OK
on success
-
esp_err_t led_strip_set_pixel(led_strip_t *strip, size_t num, rgb_t color)
Set color of single LED in strip.
This function does not actually change colors of the LEDs. Call led_strip_flush() to send buffer to the LEDs.
- Parameters:
strip – Descriptor of LED strip
num – LED number, 0..strip length - 1
color – RGB color
- Returns:
ESP_OK
on success
-
esp_err_t led_strip_set_pixels(led_strip_t *strip, size_t start, size_t len, rgb_t *data)
Set colors of multiple LEDs.
This function does not actually change colors of the LEDs. Call led_strip_flush() to send buffer to the LEDs.
- Parameters:
strip – Descriptor of LED strip
start – First LED index, 0-based
len – Number of LEDs
data – Pointer to RGB data
- Returns:
ESP_OK
on success
-
esp_err_t led_strip_fill(led_strip_t *strip, size_t start, size_t len, rgb_t color)
Set multiple LEDs to the one color.
This function does not actually change colors of the LEDs. Call led_strip_flush() to send buffer to the LEDs.
- Parameters:
strip – Descriptor of LED strip
start – First LED index, 0-based
len – Number of LEDs
color – RGB color
- Returns:
ESP_OK
on success
-
struct led_strip_t
- #include <led_strip.h>
LED strip descriptor.
Public Members
-
led_strip_type_t type
LED type.
-
bool is_rgbw
true for RGBW strips
-
uint8_t brightness
Brightness 0..255, call led_strip_flush() after change.
Supported only for ESP-IDF version >= 4.3
-
size_t length
Number of LEDs in strip.
-
gpio_num_t gpio
Data GPIO pin.
-
rmt_channel_t channel
RMT channel.
-
led_strip_type_t type
-
LED_STRIP_BRIGHTNESS