Diferencias entre tiras led RGB Multicolor y tiras led SMART(Inteligentes, Direccionables, Digitales, Neopixel…)
Con las tiras led RGB controlamos el color de toda la tira a la vez. Si cambiamos el color, cambiara el de toda la tira a la vez.

Con las tiras Direccionables controlamos led por led de la tira independientemente.

Existen varios tipos dentro de los Neopixel: WS2801, WS2811, WS2812B, WS2813… cada uno con sus particularidades respecto al otro.
Componentes Necesarios:
- NodeMcu ESP8266 cp2102 –> 2,77€
- Tira led de WS2812B 1m PCB White 30leds/m no waterproof –> 2,14€
- Convertidor de Nivel Logico 3.3v a 5v Bidirecccional (Level Converter)–> 0,32€
- Fuente Alimentacion 5v 8A 40W–> 7,32€
TOTAL: +/- 13€
![]()
Controlador
Nos ayudaremos de la libreria de Neopixel de Adafruit.
En Platformio la libreria es la nº28.
Y usaremos su código de ejemplo (tendremos que cambiar solamente el pin de control que pongamos (PIN), y el numero de leds a controlar (NUMPIXELS):
// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1
#define PIN 6
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 16
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 500; // delay for half a second
void setup() {
// This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
// End of trinket special code
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
for(int i=0;i<NUMPIXELS;i++){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
}
}
Efecto Arcoiris:
#include <Adafruit_NeoPixel.h>
// constants won't change. They're used here to
// set pin numbers:
const int ledPin = 4; // the number of the neopixel strip
const int numLeds = 30;
//Adafruit_NeoPixel pixels = Adafruit_NeoPixel(8, ledPin);
Adafruit_NeoPixel strip = Adafruit_NeoPixel(numLeds, ledPin, NEO_GRB + NEO_KHZ800);
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
if(WheelPos < 85) {
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
else if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
else {
WheelPos -= 170;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}
void rainbow(uint8_t wait) {
uint16_t i, j;
for(j=0; j<256; j++) {
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel((i*1+j) & 255));
}
strip.show();
delay(wait);
}
}
void setup() {
strip.begin();
strip.setBrightness(80); // 1/3 brightness
}
void loop() {
rainbow(30);
delay(10);
}
Instalación de Tiras Led RGB no direccionable en escritorio:
Prueba de Tira Led Direccionable:
Enlaces
Como alimentar el Nodemcu –> http://henrysbench.capnfatz.com/henrys-bench/arduino-projects-tips-and-more/powering-the-esp-12e-nodemcu-development-board/
http://novalight.com.mx/seleccion-y-diferencias-tipos-tira-led/
https://www.hackster.io/remnis/controlling-neopixels-with-a-webserver-on-an-esp8266-0381c7
