esp-idf/examples/peripherals/rmt/led_strip
morris 5ad9e6b87f feat(rmt): added a help function for allocating encoder memory
The encoder memory location should respect the RMT_MEM_ALLOC_CAPS,
which is affected by some Kconfig options, like ISR_IRAM_SAFE

Closes https://github.com/espressif/esp-idf/issues/13032
2024-01-30 17:03:41 +08:00
..
main feat(rmt): added a help function for allocating encoder memory 2024-01-30 17:03:41 +08:00
CMakeLists.txt tools: Increase the minimal supported CMake version to 3.16 2022-06-01 06:35:02 +00:00
pytest_led_strip.py rmt: support esp32h2 2023-01-18 11:40:35 +08:00
README.md feat(rmt): add driver support for esp32p4 2023-09-19 12:54:14 +08:00

Supported Targets ESP32 ESP32-C3 ESP32-C6 ESP32-H2 ESP32-P4 ESP32-S2 ESP32-S3

RMT Transmit Example -- LED Strip

(See the README.md file in the upper level 'examples' directory for more information about examples.)

Almost any waveform can be generated by RMT peripheral, as long as a proper encoder is implemented. The RMT encoder is used to encode user data (e.g. RGB pixels) into format that can be recognized by hardware.

This example shows how to drive an addressable LED strip WS2812 by implementing the led_strip_encoder.

How to Use Example

Hardware Required

  • A development board with any supported Espressif SOC chip (see Supported Targets table above)
  • A USB cable for Power supply and programming
  • A WS2812 LED strip

Connection :

                              --- 5V
                               |
                               +
RMT_LED_STRIP_GPIO_NUM +------ +---|>| (WS2812 LED strip)
                        DI     +
                               |
                              --- GND

The GPIO number used in this example can be changed according to your board, by the macro RMT_LED_STRIP_GPIO_NUM defined in the source file. The number of LEDs can be changed as well by EXAMPLE_LED_NUMBERS.

Build and Flash

Run idf.py -p PORT flash monitor to build, flash and monitor the project.

(To exit the serial monitor, type Ctrl-].)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

Console Output

I (302) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (323) example: Create RMT TX channel
I (343) example: Install led strip encoder
I (353) example: Start LED rainbow chase

After you seeing this log, you should see a rainbow chasing demonstration pattern. To change the chasing speed, you can update the EXAMPLE_CHASE_SPEED_MS value in source file.

Troubleshooting

For any technical queries, please open an [issue] (https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon.