Arduino Uno:点亮创意,玩转灯带效果

在电子制作和创意项目的世界里,Arduino Uno无疑是一颗璀璨的明星。它那简洁而强大的设计,为无数爱好者和专业人士提供了探索电子世界的窗口。今天,就让我们一起走进Arduino Uno与灯带的奇妙世界,看看如何通过简单的编程和硬件连接,让灯带展现出绚丽多彩的效果。

#include <FastLED.h>

#define LED_PIN     6 // 灯带连接的引脚
#define COLOR_ORDER GRB // 灯带的颜色顺序
#define CHIPSET     WS2812B // 灯带的芯片类型
#define NUM_LEDS    30 // 灯带的 LED 数量

CRGB leds[NUM_LEDS]; // 定义一个数组来存储每个 LED 的颜色

void setup() {
  FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS); // 初始化 FastLED
}

void loop() {
  // 效果1:全亮白色
  fill_solid(leds, NUM_LEDS, CRGB::White);
  FastLED.show();
  delay(2000);

  // 效果2:全亮红色
  fill_solid(leds, NUM_LEDS, CRGB::Red);
  FastLED.show();
  delay(2000);

  // 效果3:全亮绿色
  fill_solid(leds, NUM_LEDS, CRGB::Green);
  FastLED.show();
  delay(2000);

  // 效果4:全亮蓝色
  fill_solid(leds, NUM_LEDS, CRGB::Blue);
  FastLED.show();
  delay(2000);

  // 效果5:彩虹渐变
  rainbowCycle(5);
  delay(2000);

  // 效果6:跑马灯
  for(int i = 0; i < NUM_LEDS * 2; i++) {
    fill_solid(leds, NUM_LEDS, CRGB::Black);
    leds[i % NUM_LEDS] = CRGB::White;
    FastLED.show();
    delay(100);
  }
}

// 彩虹渐变函数
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) { // 256 色彩循环
    for(i=0; i<NUM_LEDS; i++) {
      leds[i] = Wheel((i * 256 / NUM_LEDS + j) & 255);
    }
    FastLED.show();
    delay(wait);
  }
}

// 生成彩虹颜色的函数
CRGB Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值