Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Si estás buscando una forma creativa y colorida de iluminar tus proyectos de electrónica, las tiras de LED RGB direccionables WS2812B con Arduino son la solución perfecta. En este artículo te proporcionaremos todas las instrucciones que necesitas para poder utilizarlas de manera efectiva y sorprender a todos con tus creaciones luminosas. ¡No te lo pierdas!

Esta publicación es sobre eso. Luces LED WS2812B Strip, que es una tira de LED RGB direccionable. La información de este post también funciona con otras tiras LED similares, como las tiras WS28XX Familia, tiras Neopixel y otros.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Presentamos la tira de LED WS2812B

La tira de LED direccionable WS2812B está disponible en varios modelos que se diferencian en tamaño, sellado o densidad de LED. Elige el modelo que mejor se adapte a tus propósitos.

¿Donde comprar?

Puedes visitar Asesor de creadores y encontrarlos Tira de LED RGB WS2812B Mejor precio.

En la siguiente imagen podéis ver mi tira de LED WS2812B. Tiene una longitud de 5 metros y los LED están recubiertos de silicona resistente a la intemperie. Así podrás dejarlos fácilmente afuera bajo la lluvia y el polvo.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

En mi opinión, este es el mejor tipo de tira de LED. tu puedes el brillo y eso Color cada LED individualmentelo que le permite crear fácilmente efectos sorprendentes y complejos.

Esta tira de LED consta de LED WS2812B conectados en serie. Estos LED tienen un IC integrado directamente en el LED. Esto permite la comunicación a través de una interfaz de un solo cable. Esto significa que tienes el control muchos LED con solo un alfiler digital tu Arduino.

En la siguiente imagen puedes ver el chip dentro del LED. El LED es un LED RGB y funciona de esa manera.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Este tipo de tira es muy flexible y se puede cortar al largo que desees. Como puedes ver, la tira está dividida en segmentos y cada segmento contiene un LED RGB.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Puedes ajustar el tamaño cortando la tira en el lugar correcto con unas tijeras (están marcados los lugares correspondientes para cortar la tira).

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Estas tiras tienen conectores en cada extremo. Decidí cortar los conectores y soldarlos en los cabezales de los pines. Esto es más conveniente si desea conectar la tira a un Arduino o una placa de pruebas.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Fuente de alimentación de la tira de LED WS2812B

La tira de LED debe funcionar con una fuente de alimentación de 5 V. A 5 V, cada LED consume aproximadamente 50 mA con brillo máximo. Esto significa que la tira puede consumir hasta 1,5 A para 30 LED cada una. Asegúrese de seleccionar una fuente de alimentación que satisfaga las necesidades de la regleta. Una fuente de alimentación CA-CC de 5 V y 2 A debería ser suficiente:

Si está utilizando una fuente de alimentación externa, no olvide conectar la tierra de la fuente de alimentación a la tierra de Arduino.

Esquema

En este ejemplo, la tira de LED WS2812B se alimenta desde el pin Arduino de 5V. En mi caso controlo 14 LED. Si desea controlar muchos LED, necesita utilizar una fuente de alimentación externa.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Útil Consejos:

  • Conecte un condensador con una capacidad entre 100 uF y 1000 uF a la fuente de alimentación para suavizar la fuente de alimentación.
  • Agregue una resistencia de 220 o 470 ohmios entre el pin de salida digital de Arduino y el pin de entrada de datos de la tira para reducir el ruido en esta línea.
  • Mantenga los cables entre Arduino, la fuente de alimentación y la regleta lo más cortos posible para minimizar la pérdida de voltaje.
  • Si su tira se daña y no funciona, verifique si el primer LED está roto. Si es así, córtelos, vuelva a soldar los cabezales de los pines y debería funcionar nuevamente.

código

Para controlar la tira de LED WS2812B, debe utilizar el LED rápido Biblioteca.

Instalación de la biblioteca FastLED

  1. Haga clic aquí para descargar la biblioteca FastLED. Debería haber una carpeta ZIP en tu carpeta de Descargas.
  2. Descomprima la carpeta .zip y debería obtener Mástil FastLEDcarpeta r
  3. Cambia el nombre de tu carpeta Maestro FastLED A LED rápido
  4. mueve eso LED rápido Carpeta a su instalación Arduino IDE Bibliotecas Carpeta
  5. Finalmente, vuelva a abrir su IDE de Arduino

Después de instalar la biblioteca que necesita, cargue el siguiente código en su placa Arduino (este es un boceto de ejemplo incluido en la carpeta de ejemplos de la biblioteca). Ir a archivo > Ejemplos > LED rápido > Paleta de color o copie el código a continuación.

#include <FastLED.h>

#define LED_PIN     5
#define NUM_LEDS    14
#define BRIGHTNESS  64
#define LED_TYPE    WS2811
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];

#define UPDATES_PER_SECOND 100

// This example shows several ways to set up and use 'palettes' of colors
// with FastLED.
//
// These compact palettes provide an easy way to re-colorize your
// animation on the fly, quickly, easily, and with low overhead.
//
// USING palettes is MUCH simpler in practice than in theory, so first just
// run this sketch, and watch the pretty lights as you then read through
// the code.  Although this sketch has eight (or more) different color schemes,
// the entire sketch compiles down to about 6.5K on AVR.
//
// FastLED provides a few pre-configured color palettes, and makes it
// extremely easy to make up your own color schemes with palettes.
//
// Some notes on the more abstract 'theory and practice' of
// FastLED compact palettes are at the bottom of this file.



CRGBPalette16 currentPalette;
TBlendType    currentBlending;

extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;


void setup() {
    delay( 3000 ); // power-up safety delay
    FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
    FastLED.setBrightness(  BRIGHTNESS );
    
    currentPalette = RainbowColors_p;
    currentBlending = LINEARBLEND;
}


void loop()
{
    ChangePalettePeriodically();
    
    static uint8_t startIndex = 0;
    startIndex = startIndex + 1; /* motion speed */
    
    FillLEDsFromPaletteColors( startIndex);
    
    FastLED.show();
    FastLED.delay(1000 / UPDATES_PER_SECOND);
}

void FillLEDsFromPaletteColors( uint8_t colorIndex)
{
    uint8_t brightness = 255;
    
    for( int i = 0; i < NUM_LEDS; i++) {
        leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
        colorIndex += 3;
    }
}


// There are several different palettes of colors demonstrated here.
//
// FastLED provides several 'preset' palettes: RainbowColors_p, RainbowStripeColors_p,
// OceanColors_p, CloudColors_p, LavaColors_p, ForestColors_p, and PartyColors_p.
//
// Additionally, you can manually define your own color palettes, or you can write
// code that creates color palettes on the fly.  All are shown here.

void ChangePalettePeriodically()
{
    uint8_t secondHand = (millis() / 1000) % 60;
    static uint8_t lastSecond = 99;
    
    if( lastSecond != secondHand) {
        lastSecond = secondHand;
        if( secondHand ==  0)  { currentPalette = RainbowColors_p;         currentBlending = LINEARBLEND; }
        if( secondHand == 10)  { currentPalette = RainbowStripeColors_p;   currentBlending = NOBLEND;  }
        if( secondHand == 15)  { currentPalette = RainbowStripeColors_p;   currentBlending = LINEARBLEND; }
        if( secondHand == 20)  { SetupPurpleAndGreenPalette();             currentBlending = LINEARBLEND; }
        if( secondHand == 25)  { SetupTotallyRandomPalette();              currentBlending = LINEARBLEND; }
        if( secondHand == 30)  { SetupBlackAndWhiteStripedPalette();       currentBlending = NOBLEND; }
        if( secondHand == 35)  { SetupBlackAndWhiteStripedPalette();       currentBlending = LINEARBLEND; }
        if( secondHand == 40)  { currentPalette = CloudColors_p;           currentBlending = LINEARBLEND; }
        if( secondHand == 45)  { currentPalette = PartyColors_p;           currentBlending = LINEARBLEND; }
        if( secondHand == 50)  { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND;  }
        if( secondHand == 55)  { currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND; }
    }
}

// This function fills the palette with totally random colors.
void SetupTotallyRandomPalette()
{
    for( int i = 0; i < 16; i++) {
        currentPalette[i] = CHSV( random8(), 255, random8());
    }
}

// This function sets up a palette of black and white stripes,
// using code.  Since the palette is effectively an array of
// sixteen CRGB colors, the various fill_* functions can be used
// to set them up.
void SetupBlackAndWhiteStripedPalette()
{
    // 'black out' all 16 palette entries...
    fill_solid( currentPalette, 16, CRGB::Black);
    // and set every fourth one to white.
    currentPalette[0] = CRGB::White;
    currentPalette[4] = CRGB::White;
    currentPalette[8] = CRGB::White;
    currentPalette[12] = CRGB::White;
    
}

// This function sets up a palette of purple and green stripes.
void SetupPurpleAndGreenPalette()
{
    CRGB purple = CHSV( HUE_PURPLE, 255, 255);
    CRGB green  = CHSV( HUE_GREEN, 255, 255);
    CRGB black  = CRGB::Black;
    
    currentPalette = CRGBPalette16(
                                   green,  green,  black,  black,
                                   purple, purple, black,  black,
                                   green,  green,  black,  black,
                                   purple, purple, black,  black );
}


// This example shows how to set up a static color palette
// which is stored in PROGMEM (flash), which is almost always more
// plentiful than RAM.  A static PROGMEM palette like this
// takes up 64 bytes of flash.
const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM =
{
    CRGB::Red,
    CRGB::Gray, // 'white' is too bright compared to red and blue
    CRGB::Blue,
    CRGB::Black,
    
    CRGB::Red,
    CRGB::Gray,
    CRGB::Blue,
    CRGB::Black,
    
    CRGB::Red,
    CRGB::Red,
    CRGB::Gray,
    CRGB::Gray,
    CRGB::Blue,
    CRGB::Blue,
    CRGB::Black,
    CRGB::Black
};



// Additionl notes on FastLED compact palettes:
//
// Normally, in computer graphics, the palette (or "color lookup table")
// has 256 entries, each containing a specific 24-bit RGB color.  You can then
// index into the color palette using a simple 8-bit (one byte) value.
// A 256-entry color palette takes up 768 bytes of RAM, which on Arduino
// is quite possibly "too many" bytes.
//
// FastLED does offer traditional 256-element palettes, for setups that
// can afford the 768-byte cost in RAM.
//
// However, FastLED also offers a compact alternative.  FastLED offers
// palettes that store 16 distinct entries, but can be accessed AS IF
// they actually have 256 entries; this is accomplished by interpolating
// between the 16 explicit entries to create fifteen intermediate palette
// entries between each pair.
//
// So for example, if you set the first two explicit entries of a compact 
// palette to Green (0,255,0) and Blue (0,0,255), and then retrieved 
// the first sixteen entries from the virtual palette (of 256), you'd get
// Green, followed by a smooth gradient from green-to-blue, and then Blue.

Ver código sin formato

Tienes que cambiar Número de LED variable al número de LED en su tira de LED. En nuestro ejemplo, la tira de LED tiene 14 LED de largo.

#define NUM_LEDS 14

Si desea utilizar un pin diferente en el Arduino para controlar la tira de LED, deberá cambiarlo LED_PIN Variable:

#define LED_PIN 5

demostración

Al final, esto es lo que tendrás. Efectos sorprendentes como este:

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Y esto:

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Y esto:

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Etcétera (…)

Usando una caja de tira de LED

Estas tiras de LED suelen venir con una cinta adhesiva removible para que puedas pegarlas en cualquier lugar. El problema es que no pegan muy bien, así queLo más probable es que encuentres tu racha en la cancha al día siguiente.

La solución: Encontré esta carcasa de tira que difunde bien la luz y que puedes atornillar a un estante, por ejemplo, si quieres una solución permanente.

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Envolver

Esta publicación es una introducción a la tira de LED RGB direccionable usando Arduino. Acabamos de experimentar con el ejemplo de la biblioteca. Debe modificar el ejemplo para mostrar solo los efectos que desee. Esperamos que esta guía le haya resultado útil.

Si te gusta esta publicación, también te puede gustar:

  • Luz de ambiente LED RGB WiFi DIY de $ 10 con ESP8266 (paso a paso)
  • Selector de color ESP8266 RGB
  • Conceptos básicos de electrónica: ¿cómo funcionan los LED RGB?

Gracias por leer.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino

Este artículo trata sobre la tira de LED WS2812B, que es una tira de LED RGB direccionable. La información en este artículo también funciona con otras tiras de LED similares, como las tiras de la familia WS28XX, la tira Neopixel y otras.

Introducción a la tira de LED WS2812B

La tira de LED direccionable WS2812B viene en varios modelos que difieren en tamaño, sellado o densidad de LED. Elija la que mejor se adapte a sus propósitos.

¿Dónde comprar?

Puede visitar Maker Advisor y encontrar el mejor precio para la tira de LED RGB WS2812B.

En la siguiente figura se puede ver mi tira de LED WS2812B. Tiene una longitud de 5 metros y los LED están encapsulados en silicona resistente a la intemperie, lo que permite dejarlos fuera bajo la lluvia y el polvo sin problemas.

En mi opinión, este es el tipo más genial de tiras de LED. Puede controlar el brillo y el color de cada LED individualmente, lo que le permite producir efectos sorprendentes y complejos de manera sencilla.

Esta tira de LED está compuesta por LEDs WS2812B conectados en serie. Estos LEDs tienen un circuito integrado incorporado directamente en el LED. Esto permite una comunicación a través de una interfaz de un solo cable. Esto significa que puede controlar muchos LEDs con solo un pin digital de su Arduino.

Este tipo de tiras son muy flexibles y se pueden cortar a cualquier longitud que desee. Como puede ver, la tira está dividida en segmentos, y cada segmento contiene un LED RGB.

Puede ajustar su tamaño cortando la tira con unas tijeras en el lugar adecuado (los lugares adecuados para cortar la tira están marcados).

Estas tiras vienen con conectores en cada extremo. He decidido cortar los conectores y soldar pines de cabecera. Es más práctico si desea conectar la tira a un Arduino o a un protoboard.

Alimentación de la tira de LED WS2812B

La tira de LED debe ser alimentada con una fuente de alimentación de 5V. A 5V, cada LED consume alrededor de 50 mA cuando se ajusta a su máximo brillo. Esto significa que por cada 30 LEDs, la tira puede consumir hasta 1.5 A. Asegúrese de seleccionar una fuente de alimentación que coincida con las necesidades de la tira. Un adaptador de corriente alterna a corriente continua que proporcione 5V y 2A debería ser suficiente.

Si utiliza una fuente de alimentación externa, no olvide conectar la tierra de la fuente de alimentación a la tierra del Arduino.

Esquemas

En este ejemplo, la tira de LED WS2812B se alimentará utilizando el pin de 5V del Arduino. En mi caso, estoy controlando 14 LEDs. Si desea controlar muchos LEDs, necesitará utilizar una fuente de alimentación externa.

Consejos útiles:

  1. Conecte un condensador con una capacidad entre 100uF y 1000uF de potencia a tierra para suavizar la fuente de alimentación.
  2. Agregue una resistencia de 220 o 470 ohmios entre el pin de salida digital del Arduino y el pin de entrada de datos de la tira para reducir el ruido en esa línea.
  3. Haga que los cables entre el Arduino, la fuente de alimentación y la tira sean lo más cortos posible para minimizar la pérdida de voltaje.
  4. Si su tira se daña y no funciona, verifique si el primer LED está roto. Si es así, córtelo, vuelva a soldar los pines y debería funcionar de nuevo.

Código

Para controlar la tira de LED WS2812B, deberá descargar la biblioteca FastLED.

Después de instalar la biblioteca necesaria, cargue el siguiente código en su placa Arduino. Vaya a File > Examples > FastLED > ColorPalette o copie el código a continuación.

#### Aquí se proporciona un espacio para agregar el código que se muestra en el artículo ####

Tendrá que cambiar la variable NUM_LEDS al número de LEDs en su tira de LED. En nuestro ejemplo, la tira de LED tiene 14 LEDs.

Si desea utilizar otro pin del Arduino para controlar la tira de LED, debe cambiar la variable LED_PIN.

Demostración

Al final, esto es lo que obtendrá. Efectos asombrosos como este:

Y este:

Y este:

Y así sucesivamente… Usando un estuche para tira de LED

Estas tiras de LED generalmente vienen con una cinta removible, para que puedas pegarlas donde quieras. El problema es que no se adhieren muy bien, por lo que es probable que encuentres tu tira en el suelo al día siguiente.

La solución: encontré este estuche para tira que difunde bien la luz y puedes atornillarlo a un estante, por ejemplo, si deseas una solución permanente.

Conclusión

Este artículo es una introducción a la tira de LED RGB direccionable con Arduino. Acabamos de experimentar con el ejemplo de la biblioteca. Debería modificar el ejemplo para mostrar solo los efectos que desee. Esperamos que haya encontrado útil esta guía.

Si le gustó este artículo, es posible que también le gusten:

  • $10 DIY WiFi RGB LED Mood Light con ESP8266 (Paso a paso)
  • ESP8266 RGB Color Picker
  • Electrónica Básica – ¿Cómo funcionan los LED RGB?

Gracias por leer.

1 comentario en «Instrucciones para la tira de LED RGB direccionable WS2812B con Arduino»

  1. Excelente explicación, ahora puedo animar mi tira de LED RGB fácilmente con Arduino!

    JuanDiaz22: Gracias por las instrucciones claras y fáciles de seguir. ¡Me encanta cómo queda la iluminación con la tira de LED RGB!

Deja un comentario