Segurament que has vist més d'una vegada els makers mostrar projectes usant aquests conjunts de LEDs RGB. Les aplicacions d'aquestes tires poden anar des d'una simple decoració que pot canviar de color segons algun esdeveniment extern, fins a utilitzar-se per a carreres de llums, etc. Per això en aquest article introduirem tota la informació més important que has de conèixer sobre el Neopixel i com es pot integrar i controlar amb Arduino.
Què és Neopixel?
Neopixel no és res més que una marca registrada per Adafruit Industries. No obstant això, el terme genèric per anomenar aquests components és LEDs RGB direccionables individualment (pe: SK6812, WS2811, WS2812,…). És a dir, és un circuit lògic amb aquests llums de colors que actuaran en conseqüència a un senyal de control, mostrant diferents colors, realitzant certes seqüències d'encesa, etc.
És important que sàpigues que cadascun dels LEDs RGB que componen la matriu utilitza 4 pins o connectors, de manera que seva pinout és:
- 5V: alimentació de nivell alt.
- GND: alimentació a baix nivell o terra.
- DIN: pin per rebre informació del color.
- DO: pin per enviar la informació del color.
A més d'això, integra un circuit electrònic amb una memòria capaç de emmagatzemar 3 bytes, un per cada color. Per a més informació, pots llegir el datasheet o documentació per al model específic que hagis comprat, ja que hi pot haver variacions.
On comprar Neopixel
Si busques comprar un Neopixel o elements similars per als teus projectes DIY, els pots trobar en algunes botigues especialitzades d'electrònica o també a Amazon. Algunes recomanacions sobre això són:
Integrar Neopixel amb Arduino UNO
Per a la integrar Neopixel, o qualsevol altra marca, amb la teva placa Arduino i començar a crear codi a Arduino IDE per poder controlar els colors i il·luminació, necessitaràs:
- placa Arduino UNO Rev3
- Matriu de LEDs tipus Neopixel
- Resistència de 470 Ω
- Condensador electrolític de 1000 µF de ≥6.3V
- protoboard
- Cables de connexió
- Alimentació de 5V a 1A i connector
La connexió entre la matriu Neopixel i Arduino UNO és com s'aprecia a la imatge anterior. Un cop connectat, el següent és començar amb el codi d'Arduino IDE. En aquest cas has de fer servir una biblioteca anomenada Adafruit NeoPixel que podeu descarregar des d'aquí, i començar a provar i modificar els exemples que hi estan inclosos. Per exemple, pots començar amb Simple, on obtindries alguna cosa com:
#include <Adafruit_NeoPixel.h> //Incluir la biblioteca #define PIN 6 //Pin en el que has conectado el Neopixel // Número de píxeles encadenados (en este caso 21, pero puedes modificarlo según necesites) #define NUMPIXELS 21 // Inicializamos el objeto "pixeles" Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Argumento 1 = Número de pixeles encadenados // Argumento 2 = Número del pin de Arduino utilizado con pin de datos // Argumento 3 = Banderas de tipo de pixel: // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) #define DELAYVAL 500 //timpo de espera en ms void setup() { pixels.begin(); // Inicializamos el objeto "pixeles" } void loop() { pixels.clear(); // Apagamos todos los LEDs // El primer pixel de una cadena es el #0, el segundo es el #1, y así sucesivamente hasta el n-1 for(int i=0; i<NUMPIXELS; i++) { // Modificamos el LED #i, encendiendolo con un color verde moderadamente brillante pixels.setPixelColor(i, pixels.Color(0, 150, 0)); pixels.show(); // Mandamos todos los colores con la actualización hecha delay(DELAYVAL); // Pausa antes de modificar el color del siguiente LED } }