不能使用很复杂的方式,ESP32这种模块的单片机非常好,省事,不容易坏.
竟然被我解决了
/*
灯带控制器定制要求:
1、使用场景:灯带用于电子秤边上的氛围营造;
2、实现效果:没人踩时显示呼吸效果,人踩上去时显示跑马灯效果;
3、控制方式:物理开关控制,GPIO引脚接出来,呼吸效果接常闭,跑马灯接常开,人站在秤上通过挤压物理开关,实现了2种效果切换;
*/
#include <WS2812FX.h>
#define LED_COUNT 30 //灯带灯珠数量
#define LED_PIN 12 //RGB灯带针脚,esp32,G12
int buttonPin = 23; //按键的管脚定义
int ButtonState = 0; //按钮状态
int ButtonLastState = 0; //按钮最后状态
WS2812FX ws2812fx = WS2812FX(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200); //用于打印输出端口,调试使用
ws2812fx.init();
//ws2812fx.setBrightness(255);//设置LED的整体亮度; 0=不亮,255=最高
//ws2812fx.setSpeed(1000);//设置LED的速度; 0=剥离,255=全强度剥离
//ws2812fx.setColor(BLUE);//设置LED的颜色;
//ws2812fx.setMode(3);//3是跑马灯效果
ws2812fx.start();
//ws2812fx.setSegment(段索引, 启动LED, 停止LED, 模式, 颜色[], 速度, 反向);
//ws2812fx.setSegment(0, 0, LED_COUNT, 2, COLORS(BLUE), 1000, false); //2是呼吸效果
//ws2812fx.setSegment(0, 0, LED_COUNT, 3, COLORS(BLUE), 5000, false);
pinMode(buttonPin, INPUT_PULLUP); //设置按键管脚输入高电平模式
//pinMode(buttonPin, INPUT); //设置按键管脚输入模式
}
//检测按键有没有被按下,按下显示跑马灯效果,没按显示呼吸效果;
void button_check() {
ButtonState = digitalRead(buttonPin); // 读取按键状态
if(ButtonState != ButtonLastState){
if(ButtonState == HIGH){
Serial.println("buttonPin 34 open");
ws2812fx.setBrightness(100);//设置LED的整体亮度; 0=不亮,255=最高
ws2812fx.setSpeed(5000);//设置动画速度。 10=非常快,5000=非常慢
ws2812fx.setColor(BLUE);//设置LED的颜色;
ws2812fx.setMode(15);//15是呼吸效果
//delay(3000);//ms毫秒单位
}else{
Serial.println("buttonPin 34 close");
ws2812fx.setBrightness(255);//设置LED的整体亮度; 0=不亮,255=最高
ws2812fx.setSpeed(1000);//设置动画速度。 10=非常快,5000=非常慢
ws2812fx.setColor(RED);//设置LED的颜色;
ws2812fx.setMode(44);//44是跑马灯效果
}
delay(100);
}
ButtonLastState = ButtonState;
}
void loop() {
ws2812fx.service();
button_check();
}
/*
0 FX_MODE_STATIC 静态-不闪烁。只是普通的旧静态光。
1 FX_MODE_BLINK 闪烁-正常闪烁。开/关时间为50%。
2 FX_MODE_BREATH 呼吸-进行众所周知的智能设备的“待机呼吸”。固定速度。
3 FX_MODE_COLOR_WIPE 彩色擦拭-彼此点亮后所有的LED点亮。然后按此顺序将其关闭。重复。
4 FX_MODE_COLOR_WIPE_INVERSE 反向颜色擦除-与“颜色擦除”相同,除了交换开/关颜色外。
5 FX_MODE_COLOR_WIPE_REVERSE 反向彩色擦拭-彼此点亮后所有的LED点亮。然后以相反的顺序关闭它们。重复。
6 FX_MODE_COLOR_WIPE_REVERSE_INVERSE 反向彩色擦拭反转-与“反向彩色擦拭反转”相同,除了交换开/关颜色外。
7 FX_MODE_COLOR_WIPE_RANDOM 随机擦色-将所有LED彼此转换为随机颜色。然后以另一种颜色重新开始。
8 FX_MODE_RANDOM_COLOR 随机颜色-以一种随机颜色点亮所有LED。然后将它们切换到下一个随机颜色。
9 FX_MODE_SINGLE_DYNAMIC 单一动态-以随机颜色点亮每个LED。将一个随机LED依次更改为随机颜色。
10 FX_MODE_MULTI_DYNAMIC 多重动态-以随机颜色点亮每个LED。同时将所有LED更改为新的随机颜色。
11 FX_MODE_RAINBOW 彩虹-一次循环通过彩虹的所有LED。
12 FX_MODE_RAINBOW_CYCLE 彩虹循环-在整个LED串上循环彩虹。
13 FX_MODE_SCAN 扫描-来回运行单个像素。
14 FX_MODE_DUAL_SCAN 双重扫描-以相反的方向来回运行两个像素。
15 FX_MODE_FADE 淡入淡出-淡入淡出LED,然后再次(几乎)熄灭。
16 FX_MODE_THEATER_CHASE 剧院大通-剧院式爬行灯。受到Adafruit示例的启发。
17 FX_MODE_THEATER_CHASE_RAINBOW 剧院追逐彩虹-具有彩虹效果的剧院式爬行灯。受到Adafruit示例的启发。
18 FX_MODE_RUNNING_LIGHTS 行驶灯-行驶灯效果具有平滑的正弦过渡。
19 FX_MODE_TWINKLE 闪烁-使多个LED闪烁,重置,重复。
20 FX_MODE_TWINKLE_RANDOM 随机闪烁-随机闪烁多个LED,重设,重复。
21 FX_MODE_TWINKLE_FADE 闪烁淡入淡出-使多个LED闪烁,淡出。
22 FX_MODE_TWINKLE_FADE_RANDOM 随机闪烁淡入淡出-以随机颜色闪烁多个LED,并逐渐消失。
23 FX_MODE_SPARKLE 闪烁-一次闪烁一个LED。
24 FX_MODE_FLASH_SPARKLE Flash Sparkle-以选定的颜色点亮所有LED。随机闪烁单个白色像素。
25 FX_MODE_HYPER_SPARKLE 超级闪光-像闪光一样。随着更多的闪光。
26 FX_MODE_STROBE 频闪-经典频闪效果。
27 FX_MODE_STROBE_RAINBOW 频闪彩虹-经典频闪效果。穿越彩虹。
28 FX_MODE_MULTI_STROBE 多频闪-频闪效果,具有不同的频闪计数和暂停,由速度设置控制。
29 FX_MODE_BLINK_RAINBOW 眨眼彩虹-经典眨眼效果。穿越彩虹。
30 FX_MODE_CHASE_WHITE 追逐白色-彩色在白色上运行。
31 FX_MODE_CHASE_COLOR 追逐颜色-白色在颜色上运行。
32 FX_MODE_CHASE_RANDOM 追逐随机-白色运行,然后随机颜色。
33 FX_MODE_CHASE_RAINBOW 追逐彩虹-白色在彩虹上奔跑。
34 FX_MODE_CHASE_FLASH Chase Flash(追逐闪光) -白色闪烁运行在彩色上。
35 FX_MODE_CHASE_FLASH_RANDOM Chase Flash Random-白色闪烁,随后是随机颜色。
36 FX_MODE_CHASE_RAINBOW_WHITE 追逐彩虹白的运行在白色的彩虹。
37 FX_MODE_CHASE_BLACKOUT 追逐停电-黑色在颜色上运行。
38 FX_MODE_CHASE_BLACKOUT_RAINBOW 追逐停电彩虹-黑色在彩虹上奔跑。
39 FX_MODE_COLOR_SWEEP_RANDOM 颜色扫描随机-从条的开始和结尾交替引入的随机颜色。
40 FX_MODE_RUNNING_COLOR 运行颜色-交替运行彩色/白色像素。
41 FX_MODE_RUNNING_RED_BLUE 运行红色蓝色-交替运行红色/蓝色像素。
42 FX_MODE_RUNNING_RANDOM 随机运行-随机运行的彩色像素。
43 FX_MODE_LARSON_SCANNER 拉森扫描仪-KITT
44 FX_MODE_COMET 彗星-从一端射出彗星。
45 FX_MODE_FIREWORKS 烟花-烟花火花。
46 FX_MODE_FIREWORKS_RANDOM 随机烟花-随机彩色烟花火花。
47 FX_MODE_MERRY_CHRISTMAS 圣诞快乐-交替运行绿色/红色像素。
48 FX_MODE_FIRE_FLICKER 火灾闪烁-火灾闪烁效果。就像在大风中。
49 FX_MODE_FIRE_FLICKER_SOFT 火灾闪烁(软) -火灾闪烁效果。运行速度较慢/较慢。
50 FX_MODE_FIRE_FLICKER_INTENSE 火灾闪烁(强烈) -火灾闪烁效果。颜色范围更大。
51 FX_MODE_CIRCUS_COMBUSTUS 马戏团马戏团-交替运行白色/红色/黑色像素。
52 FX_MODE_HALLOWEEN 万圣节-交替运行橙色/紫色像素。
53 FX_MODE_BICOLOR_CHASE 双色追逐-在背景色上运行的两个LED。
54 FX_MODE_TRICOLOR_CHASE 三色追逐-交替运行三个彩色像素。
55 FX_MODE_THRU_62._CUSTOM 至62.自定义-最多八个用户创建的自定义效果。
*/
|