Arduino驱动WS2812B呼吸灯效果

Arduino驱动WS2812B呼吸灯效果

准备工作

引入头文件和定义灯带参考以往文章,在这里不做赘述 传送门

主要代码

定义状态常量

#define ADD true

#define SUB false

定义呼吸状态变量

boolean stat1 = true;

定义呼吸亮度变量

int val = 0;

呼吸主程序,(参数color 为呼吸灯的颜色,具体设置可以查看链接)

void fadeinout(int color){

uint32_t hsvcolor = strip.ColorHSV(color*256,255, val);

for(int i=-1;i<150;i++){

strip.setPixelColor(i, hsvcolor);

}

if(val>=100)

stat1 = SUB;

if(val<=0)

stat1 = ADD;

strip.show();

//delay(20);

sleep(20);

if(stat1==SUB){

val -= 1;

}

else if(stat1==ADD) {

val += 1;

}

}

在Scoop多线程库中sleep(20);是指延迟20ms;

如果用在主程序中需要使用delay(20);写法;

效果调整

如果想要调整呼吸的最小亮度和最大亮度可以改变代码中的 100(最大值)和 0(最小值)

if(val>=100)

stat1 = SUB;

if(val<=0)

stat1 = ADD;

如果想要调整呼吸灯的呼吸速度,可以调整代码中的//delay(20); sleep(20);中的20 直到达到想要的速度

如果想要调节呼吸过程中变化的幅度可以调节代码中的1,如果值设置过大可能会导致呼吸有明显的闪烁

if(stat1==SUB){

val -= 1;

}

else if(stat1==ADD) {

val += 1;

}

实际效果如下图所示

🎀 相关推荐

学什么专业比较好就业?这5个黄金赛道让你赢在起跑线!
office365账号永久激活

学什么专业比较好就业?这5个黄金赛道让你赢在起跑线!

📅 10-02 👀 1021
如何给路由器加密码?详细步骤和设置方法
365bet官网哪里找

如何给路由器加密码?详细步骤和设置方法

📅 10-30 👀 6751
三星zfold6怎么关机和开机
office365账号永久激活

三星zfold6怎么关机和开机

📅 09-16 👀 2420