/*
* This ESP32 code is created by esp32io.com
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-neopixel-led-strip
*/
#include <Adafruit_NeoPixel.h>
#define PIN_NEO_PIXEL 27 // The ESP32 pin GPIO16 connected to NeoPixel
#define NUM_PIXELS 16 // The number of LEDs (pixels) on NeoPixel LED strip
Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
void setup() {
NeoPixel.begin(); // initialize NeoPixel strip object (REQUIRED)
Serial.begin(9600);
Serial.println(" ");
}
void loop() {
if (Serial.available())
{
String color = Serial.readString();
color.trim();
if(color=="red")
{
NeoPixel.clear();
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) {
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255,0, 0));
}
NeoPixel.show();
delay(2000);
NeoPixel.clear();
}
else if(color=="error")
{
NeoPixel.clear();
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) {
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255,0, 0));
}
for(int i=0;i<=3;i++)
{
NeoPixel.show();
delay(1000);
NeoPixel.clear();
NeoPixel.show();
delay(1000);
NeoPixel.fill(NeoPixel.Color(255,0, 0));
NeoPixel.show();
delay(1000);
}
}
else if(color=="Color")
{
for(int i=0;i<=255;i+=10)
{
NeoPixel.fill(NeoPixel.Color(i,0,0));
NeoPixel.show();
delay(500);
NeoPixel.clear();
NeoPixel.fill(NeoPixel.Color(0,i,0));
NeoPixel.show();
delay(500);
NeoPixel.clear();
NeoPixel.fill(NeoPixel.Color(0,0,i));
NeoPixel.show();
delay(500);
NeoPixel.clear();
NeoPixel.fill(NeoPixel.Color(i,i,0));
NeoPixel.show();
delay(500);
NeoPixel.clear();
NeoPixel.fill(NeoPixel.Color(0,i,i));
NeoPixel.show();
delay(500);
NeoPixel.clear();
NeoPixel.fill(NeoPixel.Color(i,0,i));
NeoPixel.show();
delay(500);
NeoPixel.clear();
NeoPixel.fill(NeoPixel.Color(i,i,i));
NeoPixel.show();
delay(500);
NeoPixel.clear();
}
}
else if(color=="half")
{
for(int i=0;i<=2;i++)
{
for (int pixel = 0; pixel < NUM_PIXELS/2; pixel++) { // for each pixel
NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 0, 255)); // it only takes effect if pixels.show() is called
}
NeoPixel.show(); // update to the NeoPixel Led Strip
delay(1000);
NeoPixel.clear();
for (int pixel =8; pixel < NUM_PIXELS; pixel++) { // for each pixel
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called
}
NeoPixel.show(); // update to the NeoPixel Led Strip
delay(1000);
NeoPixel.clear();
}
NeoPixel.show();
}
else if(color=="smile")
{
NeoPixel.setPixelColor(2,(NeoPixel.Color(0,0,255)));
NeoPixel.show();
NeoPixel.setPixelColor(14,(NeoPixel.Color(0,0,255)));
NeoPixel.show();
for(int pixel=5;pixel<12;pixel++)
{
NeoPixel.setPixelColor(pixel,(NeoPixel.Color(255,255,0)));
NeoPixel.show(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called
}
delay(2000);
NeoPixel.clear();
}
else if(color=="roll")
{
int x=0,y=0;
for(int i=0;i<=2;i++)
{
for (int pixel = 0; pixel < NUM_PIXELS; pixel++) {
x=random(256);
y=random(256);
NeoPixel.setPixelColor(pixel, NeoPixel.Color(x,x-y, y));
NeoPixel.show();
delay(100);
NeoPixel.clear();
}
NeoPixel.show();
}
}
}
}