arduino之灯带编程

本文介绍了如何利用Arduino编程控制采用WS2812芯片的LED灯带,重点提及了使用FastLED库实现的流水、静态彩虹和闪烁三种灯光效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

arduino编程LED灯带示例

灯带使用的是WS2812,FastLED库是第三方库,网上有下载和导入教程,实现了3种效果,流水,静态彩虹,闪烁。

#include "FastLED.h"            // FastLED库
 
#define NUM_LEDS 60             // LED灯珠数量
#define DATA_PIN 2              // Arduino输出控制信号引脚
#define LED_TYPE WS2812         // LED灯带型号
#define COLOR_ORDER GRB         // RGB灯珠中红色、绿色、蓝色LED的排列顺序
 
uint8_t max_bright = 128;       // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高
 
CRGB leds[NUM_LEDS];            // 建立光带leds

void led_rainbow_loop(void){
  FastLED.clear();
  FastLED.show();
  delay(500);
  
  fill_solid(leds, 60, CRGB::Red);
  FastLED.show();
  delay(1000);                     // 等待1秒
  fill_solid(leds, 60, CRGB::Orange);
  FastLED.show();
  delay(1000);                     // 等待1秒
  fill_solid(leds, 60, CRGB::Yellow);
  FastLED.show();
  delay(1000);                     // 等待1秒
  fill_solid(leds, 60, CRGB::Green);
  FastLED.show();
  delay(1000);                     // 等待1秒
  fill_solid(leds, 60, CRGB::Cyan);
  FastLED.show();
  delay(1000);                     // 等待1秒
  fill_solid(leds, 60, CRGB::Blue);
  FastLED.show();
  delay(1000);                     // 等待1秒
  fill_solid(leds, 60, CRGB::Purple);
  FastLED.show();
  delay(1000);                     // 等待1秒
}

void led_rainbow_flowing(void)
{
  FastLED.clear();
  FastLED.show();
  delay(500);
  int i = 0,loop_count = 0;
  if(NUM_LEDS%7 == 0)
  {
    loop_count = NUM_LEDS/7;
  }
  else
  {
    loop_count = NUM_LEDS/7+1;
  }
  
  
  for(i=0; i<loop_count; i++)
  {
    leds[i*7] = CRGB::Red;
    FastLED.show();
    delay(200);
    if(i*7+1>=NUM_LEDS) 
    {
      break;
    }
    
    leds[i*7+1] = CRGB::Orange;
    FastLED.show();
    delay(200);
    if(i*7+2>=NUM_LEDS) 
    {
      break;
    }
    
    leds[i*7+2] = CRGB::Yellow;
    FastLED.show();
    delay(200);
    if(i*7+3>=NUM_LEDS) 
    {
      break;
    }
    
    leds[i*7+3] = CRGB::Green;
    FastLED.show();
    delay(200);
    if(i*7+4>=NUM_LEDS) 
    {
      break;
    }
    
    leds[i*7+4] = CRGB::Cyan;
    FastLED.show();
    delay(200);
    if(i*7+5>=NUM_LEDS) 
    {
      break;
    }
    
    leds[i*7+5] = CRGB::Blue;
    FastLED.show();
    delay(200);
    if(i*7+6>=NUM_LEDS) 
    {
      break;
    }
    
    leds[i*7+6] = CRGB::Purple;
    FastLED.show();
    delay(200);
    if(i*7+7>=NUM_LEDS) 
    {
      break;
    }
  }
  
}


void led_rainbow_static(void){
  FastLED.clear();
  FastLED.show();
  delay(500);
  fill_rainbow(leds, 60, 0, 15);
  FastLED.show();
  delay(1000);
}

void setup() { 
  LEDS.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);  // 初始化光带 
  FastLED.setBrightness(max_bright);                            // 设置光带亮度
}
 
void loop() { 
  while(1){
    led_rainbow_flowing();
    led_rainbow_static();
    led_rainbow_loop();
  }
}
USB 可编程RGB LED灯条显示控制器描述: 该电路设计主要应用于可编程RGD LED灯条,控制板上自带电源插孔。为可编程LED灯条提供便捷的USB控制。USB 可编程RGB LED灯条控制器与Linux(包括Raspberry Pi),Mac和Windows平台兼容,并且能够以高帧率驱动多达700个LED RGB彩灯。RGB LED灯条显示基于Python的软件库BiblioPixel支持AllPixel Mini,实现对RGBLED灯条动画创建和控制。 USB 可编程RGB LED灯条显示控制器特性和支持的LED芯片组: 所有流行的LED条芯片组,包括:LPD8806,WS2801,WS2811 / WS2812(NeoPixel),WS2811 400kHz,APA102(DotStar),TM1809,TM1803,TM1804,UCS1903,P9813,SM16716,LPD1886 使用方便。无需担心芯片组协议,电平转换器或电源。只需插入电源,连接您的LED,设置芯片组代码,然后就可以显示 LED 灯条! 通过USB端口控制,并通过BilbioPixel库支持Python 。 驱动超过700像素与多个AllPixel Minis作为一个(BiblioPixel的一个功能)。 支持通过板载直流桶式插座(5A最大电流)为5V或12V LED类型供电。 通过安装附带的保护二极管,直接从USB电源驱动少量LED。 附件内容我们提供了动画库例子,让您快速启动并运行。 USB 可编程RGB LED灯条控制器效果图展示: USB 可编程RGB LED灯条控制器实物截图: USB 可编程RGB LED灯条显示控制器电路PCB截图: 新版本注意事项: 不需要焊接 - 所有零件都预先焊接 较小尺寸 - 1.6 x 1.2英寸(40.6 x 30.5 mm) 100%向后兼容:为AllPixel编写的任何代码将在Mini版本上运行 USB Micro连接器:更常见的连接器 所有附件内容截图:
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值