#include <Adafruit_NeoPixel.h>
const byte pir_pin = 2;
const byte data_pin = 15;
const byte led_num = 16;
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(led_num, data_pin, NEO_GRB + NEO_KHZ800);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(pir_pin, INPUT);
pixels.begin();
pixels.show();
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
// digitalRead(pir_pin);
int d_r = digitalRead(pir_pin);
Serial.println(d_r);
if (d_r){
generate_random_pattern();
}
delay(10);
}
void generate_random_pattern(){
byte pattern = random(1,3);
// COLOR
byte b = random(0,255);
byte g = random(0,255);
byte r = random(0,255);
// PATTERNS
if (pattern == 1){
for (int i = 0; i < led_num; i++){
pixels.setPixelColor(i,r,g,b);
delay(50);
}
for (int i = led_num - 1; i >= 0; i--){
pixels.setPixelColor(i,0,0,0);
pixels.show();
delay(50);
}
}
else if(pattern == 2){
for (int i = 0; i <= 255; i++){
for (int j = 0; j < led_num; j++){
pixels.setPixelColor(j, 0, i, i);
}
pixels.show();
delay(10);
}
for (int i = 255; i >= 0; i--){
for (int j = 0; j < led_num; j++){
pixels.setPixelColor(j, 0, i, i);
}
pixels.show();
delay(10);
}
}
}