En primer lugar necesitaras varios componentes:
* NodeMcu ESP8266 cp2102
* Tira led de WS2812B 1m PCB White 30leds/m no waterproof
* Convertidor de Nivel Logico 3.3v a 5v Bidirecccional (Level Converter)
* Fuente Alimentacion 5v 8A 40W

Ademas, tendras que programar un 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).

  }
}
```
 


Aqui tienes otro ejemplo, 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);
}
```
ส่วนประกอบต่างๆ ที่จำเป็นต่อไพรเมอร์: * NodeMcu ESP8266 cp2102 * Tira led ของ WS2812B 1m PCB White 30leds/m ไม่มีกันน้ำ * Convertidor de Nivel Logico 3.3va 5v Bidireccional (Level Converter) * Fuente Alimentacion 5v 8A 40W Ademas, โปรแกรมควบคุมและควบคุม : Nos ayudaremos de la libreria de Neopixel de Adafruit. บน Platformio la libreria และ 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 // ปล่อยตัว ภายใต้ใบอนุญาต GPLv3 เพื่อให้ตรงกับส่วนที่เหลือของไลบรารี AdaFruit NeoPixel #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif // ขาใดบน Arduino ที่เชื่อมต่อกับ NeoPixels? // เปิด เครื่องประดับเล็กๆ น้อยๆ หรือ Gemma เราขอแนะนำให้เปลี่ยนสิ่งนี้เป็น 1 #define PIN 6 // มี NeoPixels กี่ตัวที่ต่อกับ Arduino #define NUMPIXELS 16 // เมื่อเราตั้งค่าไลบรารี NeoPixel เราจะบอกจำนวนพิกเซลและพินที่จะใช้ เพื่อส่งสัญญาณ // โปรดทราบว่าสำหรับแถบ NeoPixel รุ่นเก่าคุณอาจต้องเปลี่ยนพารามิเตอร์ที่สาม - ดู strandtest // ตัวอย่างสำหรับข้อมูลเพิ่มเติมเกี่ยวกับค่าที่เป็นไปได้ Adafruit_NeoPixelpixel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int Delayval = 500; // หน่วงเวลาครึ่งวินาทีในการตั้งค่าโมฆะ () { // นี่เป็นสำหรับ Trinket 5V 16MHz คุณสามารถลบสามบรรทัดเหล่านี้ออกได้หากคุณไม่ได้ใช้ Trinket #if กำหนดไว้ (__AVR_ATtiny85__) ถ้า (F_CPU == 16000000 ) clock_prescale_set(clock_div_1); #endif // สิ้นสุดโค้ดพิเศษเล็กๆ น้อยๆpixels.begin(); // สิ่งนี้จะเริ่มต้นไลบรารี NeoPixel } void loop() { // สำหรับชุดของ NeoPixels NeoPixel ตัวแรกคือ 0 ตัวที่สองคือ 1 ไปจนถึงจำนวนพิกเซลลบหนึ่ง for(int i=0;i<NUMPIXELS;i++){/ //pixels.Color รับค่า RGB ตั้งแต่ 0,0,0 ถึง 255,255,255pixels.setPixelColor(i,pixels.Color(0,150,0)); // สีเขียวสดใสปานกลาง พิกเซล.แสดง(); // นี่จะส่งสีพิกเซลที่อัปเดตไปยังฮาร์ดแวร์ ความล่าช้า(ความล่าช้า); // หน่วงเวลาเป็นระยะเวลาหนึ่ง (เป็นมิลลิวินาที) } ``` Aqui tienes otro ejemplo, Efecto Arcoiris: ``` #include <Adafruit_NeoPixel.h> // ค่าคงที่จะไม่เปลี่ยนแปลง ที่นี่ใช้เพื่อ // ตั้งค่าหมายเลขพิน: const int ledPin = 4; // จำนวนแถบ neopixel const int numLeds = 30; //Adafruit_NeoPixel พิกเซล = Adafruit_NeoPixel(8, ledPin); แถบ Adafruit_NeoPixel = Adafruit_NeoPixel(numLeds, ledPin, NEO_GRB + NEO_KHZ800); // ป้อนค่า 0 ถึง 255 เพื่อรับค่าสี // สีคือการเปลี่ยนสี r - g - b - กลับไปเป็น r uint32_t Wheel (ไบต์ WheelPos) { ถ้า (WheelPos <85) { return strip.Color (WheelPos * 3, 255 - WheelPos * 3, 0); } อื่น ๆ ถ้า (WheelPos < 170) { WheelPos -= 85; แถบส่งคืนสี (255 - WheelPos * 3, 0, WheelPos * 3); } อื่น { WheelPos -= 170; แถบส่งคืนสี (0, WheelPos * 3, 255 - WheelPos * 3); } } โมฆะสายรุ้ง (uint8_t รอ) { 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)); } แถบ.show(); ล่าช้า(รอ); } } การตั้งค่าเป็นโมฆะ () { strip.begin (); แถบ setBrightness (80); // ความสว่าง 1/3 } void loop () { rainbow (30); ล่าช้า(10); } ```
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence