WS2812B

#include "Freenove_WS2812_Lib_for_ESP32.h"


#define LEDS_COUNT 18

#define LEDS_PIN 14

#define CHANNEL 0


Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB);


void setup() {

strip.begin();

}


void loop() {

rainbow();

black();

delay(1000);

}



//全部燈熄滅

void black(){

for (int i = 0; i < LEDS_COUNT; i++) {

strip.setLedColorData(i, 0, 0, 0);

}

strip.show();

}


//彩虹模式

void rainbow(){

for (int j = 0; j < 255; j += 2) {

for (int i = 0; i < LEDS_COUNT; i++) {

strip.setLedColorData(i, strip.Wheel((i * 256 / LEDS_COUNT + j) & 255));

}

strip.show();

delay(5);

}


}

加入人體傳感器

#include "Freenove_WS2812_Lib_for_ESP32.h"


#define LEDS_COUNT 18

#define LEDS_PIN 14

#define CHANNEL 0


Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB);


void setup() {

strip.begin();

pinMode(13, INPUT);

pinMode(2, OUTPUT);

}


void loop() {

if (digitalRead(13) == true) {

digitalWrite(2,HIGH);

for (int count = 0; count < 3; count++) {

rainbow();

}


} else {

black();

digitalWrite(2,LOW);

}

}



//全部燈熄滅

void black(){

for (int i = 0; i < LEDS_COUNT; i++) {

strip.setLedColorData(i, 0, 0, 0);

}

strip.show();

delay(1);


}


//彩虹模式

void rainbow(){

for (int j = 0; j < 255; j += 2) {

for (int i = 0; i < LEDS_COUNT; i++) {

strip.setLedColorData(i, strip.Wheel((i * 256 / LEDS_COUNT + j) & 255));

}

strip.show();

delay(20);

}


}