In this example we look at a new wemos shield (for us anyway), this is called the RGB shield and as you might expect contains RGB leds, in fact it has 7 of these LEDs
7 RGB LEDs (WS2812B-mini) each with 24-bit RGB color
Not a lot to say about this other than lets look at some examples
Code
You need to add the Adafruit Neopixel library for these examples, there are other libraries you can try of course –
Example 1
#include <Adafruit_NeoPixel.h>
#define PIN D4
#define LED_NUM 7
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
Adafruit_NeoPixel leds = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
leds.begin(); // This initializes the NeoPixel library.
}
void led_set(uint8 R, uint8 G, uint8 B)
{
for (int i = 0; i < LED_NUM; i++)
{
leds.setPixelColor(i, leds.Color(R, G, B));
leds.show();
delay(150);
}
}
void loop() {
led_set(10, 0, 0);//red
led_set(0, 0, 0);
led_set(0, 10, 0);//green
led_set(0, 0, 0);
led_set(0, 0, 10);//blue
led_set(0, 0, 0);
}
Example 2
#include <Adafruit_NeoPixel.h>
#define PIN D4
#define LED_NUM 7
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
Adafruit_NeoPixel leds = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
leds.begin(); // This initializes the NeoPixel library.
}
void loop()
{
for (int i = 0; i < LED_NUM; i++)
{
leds.setPixelColor(i, leds.Color(10, 0, 0));
leds.show();
delay(250);
leds.setPixelColor(i, leds.Color(0, 10, 0));
leds.show();
delay(250);
leds.setPixelColor(i, leds.Color(0, 0, 10));
leds.show();
delay(250);
}
}
Example 3
My favourite this one
#include <Adafruit_NeoPixel.h>
#define PIN D4
#define LED_NUM 7
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
Adafruit_NeoPixel leds = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
leds.begin(); // This initializes the NeoPixel library.
Serial.begin(9600);
randomSeed(analogRead(A0));
}
void loop()
{
//you can make the colours 255 but that is bright
int redRandom = random(10);
int greenRandom = random(10);
int blueRandom = random(10);
int ledRandom = random(7);
leds.setPixelColor(ledRandom, leds.Color(redRandom, greenRandom, blueRandom));
leds.show();
delay(250);
}
There are other examples in the Neopixel libarry which you can try and adapt as well
Buy it from Wemos at https://www.aliexpress.com/store/product/WS2812B-RGB-SHIELD-for-WeMos-D1-mini/1331105_32666803472.html