arduino - 给led随机颜色
问题描述
是否可以为 LED 分配随机颜色?如果两个或多个 LED 具有相同的颜色,这不是问题。
我尝试过这样的事情:尝试为数字分配颜色,并给 LED 一个随机数。代码无法验证,无法将 int 与随机数组合(至少不是我尝试的方式)
randNumber 之后的 CRGB:: 是 FastLED 库的一部分,用于为 LED 提供颜色。在 Fastled 中,您可以为颜色命名。
#include "FastLED.h"
#define NUM_LEDS 10
CRGB leds[NUM_LEDS];
#define DATA_PIN 2
long randNumber;
long randNumber0 = CRGB::Red;
long randNumber1 = CRGB::White;
long randNumber2 = CRGB::Blue;
long randNumber3 = CRGB::Red;
long randNumber4 = CRGB::White;
long randNumber5 = CRGB::Blue;
long randNumber6 = CRGB::Red;
long randNumber7 = CRGB::White;
long randNumber8 = CRGB::Blue;
long randNumber9 = CRGB::Red;
#define INTERVAL_MESSAGE1 5000
unsigned long time_1 = 0;
void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
Serial.begin(9600);
}
void loop() {
if (millis() >= time_1 + INTERVAL_MESSAGE1) {
time_1 += INTERVAL_MESSAGE1;
leds[0] = randNumber.random(0,9);
leds[1] = randNumber.random(0,9);
leds[2] = randNumber.random(0,9);
leds[3] = randNumber.random(0,9);
leds[4] = randNumber.random(0,9);
leds[5] = randNumber.random(0,9);
leds[6] = randNumber.random(0,9);
leds[7] = randNumber.random(0,9);
leds[8] = randNumber.random(0,9);
leds[9] = randNumber.random(0,9);
FastLED.show(55);
}
}
解决方案
答案是使用数组并使用随机选择其中的索引。顺便说一句,语言是 C++,所以你可以查看一些教程。
#include "FastLED.h"
#define NUM_LEDS 10
CRGB leds[NUM_LEDS];
#define DATA_PIN 2
long randNumber[10] = {
CRGB::Red,
CRGB::White,
CRGB::Blue,
CRGB::Red,
CRGB::White,
CRGB::Blue,
CRGB::Red,
CRGB::White,
CRGB::Blue,
CRGB::Red
};
#define INTERVAL_MESSAGE1 5000
unsigned long time_1 = 0;
void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
Serial.begin(9600);
}
void loop() {
if (millis() >= time_1 + INTERVAL_MESSAGE1) {
time_1 += INTERVAL_MESSAGE1;
for (auto & led : leds) {
led = randNumber[random(0,10)];
}
FastLED.show(55);
}
}
推荐阅读
- python-3.x - 如何使用 python 从表中提取数据?
- android - 当应用从 Firebase 收到通知时打开新活动
- javascript - 我有一个粘性标题,在标题中我有 jquery 自动建议,当我们滚动页面时,自动建议也在滚动
- java - 函数式编程将代码转换为声明式风格
- html - 有没有办法在下拉列表中显示以前选择的选项
- c# - 在不同层次的架构 C# 中使用等待的 [异步任务]
- google-bigquery - 需要关于基于非日期列和日期分区在 bigquery 中拆分表的建议
- ruby-on-rails - 在rails中实现多表继承最干的方法是什么?
- javascript - FormData 在react中返回表单提交的空数据
- php - 我想在 PHP 中显示多个选定的数据