INFORMACIÓN
La tira LED Neopixel Circular 16 Bits facilita el enlace y control de multiples LEDs RGB super brillantes en encapsulados 5050 de 5mm x 5mm y 4 terminales los cuales son controlados por WS2812 / WS2812B respectivamente el cual permite utilizar un único cable de datos para asignar uno de los 16,777,216 colores a cada LED.
La tira LED esta disponible en dos versiones, la primera de 45mm y la segunda de 68mm de diámetro exterior, ambas versiones son ideales para proyectos de iluminación, indicadores visuales y para usar en conjunto con tarjetas de desarrollo como: Arduino, ESP32, Raspberry Pi Pico.
ESPECIFICACIONES Y CARACTERÍSTICAS
Neopixel circular WS2812 16 bits 45mm
|
Neopixel circular WS2812B 16 bits 68mm
|
DOCUMENTACIÓN Y RECURSOS
-
Pinout:
-
Librería:
- Neopixel (Puedes instalar la librería a través del Gestor de Librerías de Arduino o bien instalando el archivo .zip del enlace)
-
Datasheet
INFORMACIÓN ADICIONAL
¿Como funciona la tecnología Neopixel?
La tecnología Neopixel funciona a través de un controlador interno de los LEDs como el WS2812 o el WS2812B, el cual se encarga de transmitir datos en serie, de esta manera se consigue controlar todos los LEDs desde una sola línea de datos.
Cuando un LED recibe un flujo de bytes, guarda los 3 últimos y transmite el resto al siguiente LED, finalmente una señal “Reset” indica a los leds que muestren el valor almacenado.
Los 3 bytes almacenados corresponden a cada uno de los 256 valores que puede tomar cada color del LED RGB (Red, Green y Blue), por tanto disponemos de 256(R)x256(G)x256(B) = 16.777.216 colores por pixel, lo cual se logra gracias a la teoría del color aditivo.
Código de prueba:
Este código sirve para probar el funcionamiento de la Neopixel Circular 16 Bits,para ello se iluminaran en color verde uno a uno los 16 LEDS 5050 de la tira manteniéndose encendidos hasta completar la rotación, posteriormente se apagaran todos y comenzaran a encenderse nuevamente de uno en uno.
Diagrama |
Simulación |
// Prueba simple para Anillo NeoPixel (c) 2013 Shae Erisson
// Publicado bajo la licencia GPLv3 para coincidir con el resto de
// la librería Adafruit NeoPixel
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Requerido para Adafruit Trinket de 16 MHz
#endif
// ¿Qué pin del Arduino esta conectado a la tira Nopixel?
#define PIN 6 // Para Trinket o Gemma, se recomienda cambiar al pin 1.
// ¿Cuántas tiras NeoPixel están conectadas al Arduino?
#define NUMPIXELS 16 // Tamaño popular de anillo NeoPixel
// Al configurar la librería NeoPixel, hay que declarar cuantos pixeles
// y que pines se usarán para enviar señales. Hay que tener en cuenta que para tiras Neopixel
// más antiguas, es posible que haya que cambiar el 3er parámetro.
// Parámetro 3 = Indicador de tipo de pixel, agregue según sea el caso:
// NEO_KHZ800 800 KHz flujo de bits (La mayoría de los productos con controlador LED WS2812)
// NEO_KHZ400 400 KHz (Pixeles FLORA clásicos 'v1' (no v2), controladores WS2811)
// NEO_GRB Pixeles cableados para flujos de bits RGB(la mayoría de los productos NeoPixel)
// NEO_RGB Pixeles cableados para flujos de bits RGB (Pixeles FLORA v1, no v2)
// NEO_RGBW Pixeles cableados para flujos de bits RGB (Productos NeoPixel RGBW)
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 // Tiempo (en milisegundos) para hacer una pausa entre pixeles
void setup() {
// Estas lineas son especificamente para admitir Adafruit Trinket 5V 16 MHz.
// Para cualquier otra tarjeta, puede ser eliminada (pero no hya problema si se mantiene):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
// FIN del codigo especifico de Trinket.
pixels.begin(); // INICIALIZACION de objeto tira NeoPixel (OBLIGATORIO)
}
void loop() {
pixels.clear(); // Establece todos los colores de pixeles en 'off'
// Al primer NeoPixel en un hilo corresponde el #0, al segundo 1, y así sucesivamente
// hasta la suma de pixeles menos uno.
for(int i=0; i<NUMPIXELS; i++) { // Para cada pixel...
// pixels.Color() toma valores RGB, desde 0,0,0 hasta 255,255,255
// Aquí estamos usando un color verde moderadamente brillante:
pixels.setPixelColor(i, pixels.Color(0, 150, 0));
pixels.show(); // Envía los colores de los píxeles actualizados al hardware.
delay(DELAYVAL); // Pausa antes del siguiente paso a través del ciclo.
}
}
Valoraciones
No hay valoraciones aún.