| Per començar | Elements d'entrada | Programació CircuitPython | Recursos CITCEA | |
| Elements no electrònics | Elements de sortida | Programació Arduino | ||
| Projectes | Elements de control | Dades pràctiques | Inici |
El NeoPixel Ring és un conjunt de NeoPixel connectats en cadena i muntats sobre una circumferència.
El control dels NeoPixel Rings es fa des d'una única sortida digital del microcontrolador de manera que deixa totes les altres potes lliures per a altres funcions. A més, els NeoPixel Rings es poden posar en cadena (connectant la sortida de l'un amb l'entrada del següent) tant amb NeoPixel com amb altres NeoPixel Ring i això permet controlar individualment un nombre elevat de LED fent servir una única sortida.
Existeixen cristalls difusors per als NeoPixels.
Els borns de connexió del NeoPixel Ring de 16 LED s'indiquen a la figura següent. Per fer servir un NeoPixel cal connectar el born V+ al born positiu de l'alimentació, el born G al negatiu de l'alimentació i el born in amb una sortida digital del microcontrolador. En aquesta imatge també veiem les posicions de quatre dels LED, les posicions dels altres es poden deduir fàcilment.
El següent diagrama mostra com es connectarien dos NeoPixel Rings a una placa de microcontrolador Flora. El positiu dels NeoPixel Rings s'ha connectat al born VBATT i el negatiu al born GND. L'entrada de communicació dels NeoPixel Rings s'ha connectat a la pota D6 del microcontrolador.
Hem posat com exemple el NeoPixel Ring de 16 LED (que té el mateix diàmetre exterior que la placa Flora) però també en podeu trobar de 12 LED, de 24 LED i de 60 LED (aquest es ven a quarts).
Els NeoPixel Ring es fabriquen en diferents tipus segons com es mostra el color blanc.
La programació del NeoPixel Ring és similar a la del NeoPixel. A continuació trobareu un exemple en el que inicialment el LED 0 està vermell, el 4 està verd, el 8 està blau i el 12 està groc. Al cap de mig segon els colors es desplacen una posició (LED 1, 5, 9 i 13) i així successivament.
#include <Adafruit_NeoPixel.h>
int a1 = 0, a2 = 4, a3 = 8, a4 = 12; // Varíables que comptaran la posició Adafruit_NeoPixel cadena = Adafruit_NeoPixel(16, 6, NEO_GRB + NEO_KHZ800); // Cadena de 16
void setup() {
cadena.begin(); // Inicialitza els NeoPixels
cadena.show();
}
void loop() {
if (a1 > 15){
a1 = a1 - 16;
}
if (a2 > 15){
a2 = a2 - 16;
}
if (a3 > 15){
a3 = a3 - 16;
}
if (a4 > 15){
a4 = a4 - 16;
}
for (int k = 0; k < 16; k++){
cadena.setPixelColor(k, 0, 0, 0); // Apaga tots els pixels (0 a 15)
}
cadena.setPixelColor(a1, 100, 0, 0); // Pixel a1 vermell
cadena.setPixelColor(a2, 0, 100, 0); // Pixel a2 verd
cadena.setPixelColor(a3, 0, 0, 100); // Pixel a3 blau
cadena.setPixelColor(a4, 100, 100, 0); // Pixel a4 groc
cadena.show(); // Actualitza
delay(500); // Espera mig segon
a1++;
a2++;
a3++;
a4++;
}
En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.