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);
}
}