> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kode.diy/llms.txt
> Use this file to discover all available pages before exploring further.

# LED direccionable

> Conoce cómo funciona el led direccionable y dale luz a tus proyectos.

# Características

El Kode Dot integra un **led direccionable** arriba a la izquierda del pad, que podrás iluminar con el **color y brillo que quieras.**

No es un led RGB normal, sino que es un **led RGB direccionable WS2812B.** Esto significa que dentro del led hay un **pequeño integrado** que puede manejar independientemente el color de los leds RGB y el brillo de cada uno.

| Característica | Descripción      |
| -------------- | ---------------- |
| Driver         | WS2812B - 1-Wire |
| Tamaño         | 2mm x 2mm        |
| Color          | RGB              |

## Esquema de conexión

El led direccionable funciona mediante un sólo pin conectado al ESP32-S3.

| WS2812B | ESP32-S3 |
| ------- | -------- |
| Data    | GPIO4    |

<Note> 1-Wire es un protocolo de comunicación que permite la comunicación de datos por medio de un único pin.</Note>

## Librerías recomendadas

### Arduino

* [Adafruit\_NeoPixel](https://github.com/adafruit/Adafruit_NeoPixel)
* [FastLED](https://github.com/FastLED/FastLED)

### ESP-IDF

* [led\_indicator](https://components.espressif.com/components/espressif/led_indicator)
* [led\_strip](https://components.espressif.com/components/espressif/led_strip)

## Ejemplo de código

Este código ilumina el led direccionable haciendo un ciclo de colores: primero rojo, luego verde y por último azul.

```cpp rgb_cycle.ino lines icon="microchip" theme={null}
/**
 * Controla un único NeoPixel conectado al GPIO 4, encendiéndolo en rojo, verde y azul.
 * Cada color se mantiene encendido durante medio segundo y se apaga entre cambios.
 * Usa la librería Adafruit_NeoPixel para el control de LEDs RGB.
 */
/* ───────── KODE | docs.kode.diy ───────── */

#include <Adafruit_NeoPixel.h> /* Librería para controlar tiras y LEDs NeoPixel */

#define NEOPIXEL_PIN   4                  /* Pin GPIO donde está conectado el NeoPixel */
#define NUMPIXELS      1                  /* Número de NeoPixels conectados */
#define PIXEL_FORMAT   (NEO_GRB + NEO_KHZ800) /* Formato de color y velocidad de datos */

Adafruit_NeoPixel *pixels;                /* Puntero al objeto NeoPixel */

#define DELAYVAL       500                /* Tiempo de espera entre cambios (ms) */

void setup() {
  Serial.begin(115200);                   /* Inicia la comunicación serie para depuración */

  /* Crea el objeto NeoPixel con los parámetros definidos */
  pixels = new Adafruit_NeoPixel(NUMPIXELS, NEOPIXEL_PIN, PIXEL_FORMAT);

  pixels->begin();                        /* Inicializa el NeoPixel */
  pixels->clear();                        /* Asegura que el LED empiece apagado */
  pixels->show();                         /* Aplica el cambio */
}

void loop() {
  /* Enciende en rojo */
  pixels->setPixelColor(0, pixels->Color(150, 0, 0));
  pixels->show();
  delay(DELAYVAL);

  /* Apaga */
  pixels->setPixelColor(0, pixels->Color(0, 0, 0));
  pixels->show();
  delay(DELAYVAL);

  /* Enciende en verde */
  pixels->setPixelColor(0, pixels->Color(0, 150, 0));
  pixels->show();
  delay(DELAYVAL);

  /* Apaga */
  pixels->setPixelColor(0, pixels->Color(0, 0, 0));
  pixels->show();
  delay(DELAYVAL);

  /* Enciende en azul */
  pixels->setPixelColor(0, pixels->Color(0, 0, 150));
  pixels->show();
  delay(DELAYVAL);

  /* Apaga */
  pixels->setPixelColor(0, pixels->Color(0, 0, 0));
  pixels->show();
  delay(DELAYVAL);
}
```

## Descarga de ejemplos

Puedes probar los códigos de ejemplo mediante el IDE de Arduino o el IDE de ESP-IDF o descargar los códigos en nuestro drive:

[Ejemplos del led direccionable](https://drive.google.com/drive/folders/1f7pmw24Q7ikkvg6vVaRGUN63GGYj1NbC)
