Arduino的基于WS2812的呼吸灯带

本文介绍了如何利用Arduino和FastLED库,通过编程控制灯带实现颜色变化的呼吸效果,涉及LED定义、参数设置和循环控制等关键部分。
摘要由CSDN通过智能技术生成

根据项目要求需要做出灯带呼吸效果,初步建立了一个代码,可以更改几个变量来设置呼吸灯带的颜色,呼吸时长和呼吸深度。为了方便可读,只保留了呼吸灯部分。灯带分别有3个引脚,分别是VCC正极,GND负极和DIN信号。只要把正负极接好,把DIN口接到Arduino的D2口就可以运行。

附上图片和代码,(注意,这灯带是我用一个个灯珠单独连接的,真正需要看的先只有单片机上的三条线)

#include<FastLED.h>

//LED定义
#define NUM_LEDS1 100

#define ledPin1 2

CRGB leds1[NUM_LEDS1];

//LED参数
float r1=10,g1=255,b1=10;//胸甲脖子灯颜色
float r2=r1,g2=g1,b2=b1;
int ledBkTime=30;//led呼吸时长
//延时


void setup()
{
  //LED设置
FastLED.addLeds<WS2812,ledPin1,RGB>(leds1,NUM_LEDS1);

FastLED.setMaxPowerInVoltsAndMilliamps(5,1500);//5V 1500mA


//这两个分别是灯带清屏和灯带刷新FastLED.clear();FastLED.show();

  
}


void loop()
{
  
  for(int i=0;i<ledBkTime;i++)
  {
   LEDLI();
   RGBDOW();
  }
    for(int i=0;i<ledBkTime;i++)
  {
   LEDLI();
   RGBUP();
  }
}

void LEDLI()
{
  
   for(int i=0;i<100;i++)
    {
     leds1[i]=CRGB(g2,r2,b2);
    }
   FastLED.show();
  delay(50);
  
}

void RGBDOW()
{
  r2=r2-r1/ledBkTime;g2=g2-g1/ledBkTime;b2=b2-b1/ledBkTime;

}
void RGBUP()
{
 r2=r2+r1/ledBkTime;g2=g2+g1/ledBkTime;b2=b2+b1/ledBkTime; 
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值