#pragma once #include "esp_err.h" #include "driver/rmt_tx.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Handle para a instância de LED strip */ typedef struct led_strip_t *led_strip_handle_t; /** * @brief Configuração para criar um LED strip */ typedef struct { uint32_t strip_length; // número de LEDs uint32_t resolution_hz; // resolução do RMT rmt_channel_handle_t rmt_channel;// canal RMT a usar } led_strip_config_t; /** * @brief Cria uma nova instância de LED strip */ esp_err_t led_strip_new_rmt_device(const led_strip_config_t *config, led_strip_handle_t *ret_strip); /** * @brief Define a cor de um LED (index base 0) */ esp_err_t led_strip_set_pixel(led_strip_handle_t strip, uint32_t index, uint8_t red, uint8_t green, uint8_t blue); /** * @brief Atualiza os LEDs com as cores definidas */ esp_err_t led_strip_refresh(led_strip_handle_t strip); /** * @brief Limpa todos os LEDs (define para preto) */ esp_err_t led_strip_clear(led_strip_handle_t strip); #ifdef __cplusplus } #endif