Adafruit NeoPixel Ring Arduino

Adafruit NeoPixel Ring de la tira de LED direccionable (módulo Arduino NeoPixel Ring ws2812b) permite crear diversos efectos de iluminación. En este resumen consideraremos la conexión de un anillo ws2812b 5050 RGB LED de 16 o 24 píxeles al microcontrolador Arduino y proporcionaremos algunos programas de ejemplo con interesantes y coloridos efectos de luz para el Anillo NeoPixel utilizando la librería Adafruit_NeoPixel.h.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • Adafruit NeoPixel Ring WS2812B
  • cables de conexion
  • librairies hsv.h, Adafruit_NeoPixel.h

Módulo Adafruit NeoPixel Ring pinout, datasheet

Adafruit NeoPixel Ring datasheet, pinout
WS2812B Adafruit NeoPixel Ring datasheet, pinout

Características Adafruit NeoPixel Ring:

  • Tensión de alimentación de entrada: 5 V
  • Consumo de corriente del LED: < 45 mA
  • Temperatura de funcionamiento: -25…80 °C

Los módulos NeoPixel Ring se conectan con una entrada (DIN) al pin digital de la placa Arduino. Los módulos pueden conectarse entre sí. Cuando hay más de un módulo conectado, se conectan entre sí: la salida OUT de cada módulo se conecta a la entrada IN del siguiente módulo, y la entrada IN del primer módulo se conecta al puerto Arduino Uno. Los LED se numeran secuencialmente, empezando por el más cercano al Arduino.

Conectar Adafruit NeoPixel Ring WS2812B Arduino

Conexión Adafruit NeoPixel Ring Arduino
Conexión Adafruit NeoPixel Ring Arduino

Para controlar un anillo de ws2812b 5050 RGB LED desde el Arduino se puede utilizar cualquier programa que se utiliza para controlar una tira de LEDs direccionable, sólo es necesario especificar el número de LEDs en el anillo. Por ejemplo, puede utilizar ejemplos estándar de la biblioteca Adafruit NeoPixel o FastLed. A continuación hemos publicado algunos programas de ejemplo para trabajar con anillo NeoPixel Ring LED RGB.

Programa Arduino para Adafruit NeoPixel Ring

#include "Adafruit_NeoPixel.h"
#include "hsv.h"
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CNT, PIN, NEO_GRB + NEO_KHZ800);

#define PIN 2
#define CNT 12
#define MAXHUE 256*6
int pos = 0;

void setup() {
  strip.begin();
}

void loop() {
  for (int i = 0; i < CNT; i++)
    strip.setPixelColor((i + pos) % CNT, getPixelColorHsv(i, i * (MAXHUE / CNT), 255, 10));
    strip.show();
    pos++;
    pos %= CNT;
    delay(50);
}

Explicación del código para Adafruit NeoPixel Ring:

  1. especificar en el código el número necesario de LED en el módulo;
  2. la velocidad de los efectos depende del tiempo de retardo – delay(50);

Programa Arduino para el efecto sobre el NeoPixel Ring

#include "Adafruit_NeoPixel.h"
#include "hsv.h"
Adafruit_NeoPixel strip = Adafruit_NeoPixel(CNT, PIN, NEO_GRB + NEO_KHZ800);

#define PIN 2
#define CNT 12
#define MAXHUE 256*6
int pos = 0;
int hue = 1;

void setup() {
  strip.begin();
}

void loop() {
   for (int i = 0; i < CNT; i++)
     strip.setPixelColor((i + pos) % CNT, getPixelColorHsv(i, hue, 255, strip.gamma8(i * (255 / CNT))));
     strip.show();
     pos++;
     pos %= CNT;
     hue += 2;
     hue %= MAXHUE;
     delay(50);
}

Explicación del código para el efecto sobre el NeoPixel Ring:

  1. en estos ejemplos se utiliza el mismo algoritmo. La variable pos se incrementa en 1 unidad cada 50 ms, lo que crea el efecto de movimiento;
  2. en este ejemplo, el anillo hace girar el punto, que cambia de color y pasa gradualmente por todas las tonalidades de color.

Conclusión. Este conjunto permite conectar en serie un número ilimitado de módulos y utilizar este producto en proyectos. Una característica importante de los LEDs ws2812b es el alto consumo de corriente y a pesar de la compatibilidad de alimentación con las placas Arduino, es mejor utilizar una fuente de alimentación separada para el NeoPixel Ring.


2 Replies to “Cómo conectar Adafruit NeoPixel Ring Arduino”

    1. Necesitas instalar las librerías Adafruit_NeoPixel.h y hsv.h en Arduino IDE. Añadidos enlaces para descargar las librerías desde github.com al artículo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *