(2025年7月12日のできごと)
とあるYouTubeライブを見ていたら
オーロラLED
という言葉が耳に入ってきまして
オーロラみたいに色んな色にひかるのかな、と思い
作ってみました
RGB LEDを使って、R, G, Bそれぞれにランダムな強さを指定
間が滑らかに繋がるようにしています。
言葉での説明は難しいので、最後にソースを載せておきます

#define LED_R 11
#define LED_G 10
#define LED_B 9
int R_prev, G_prev, B_prev;
int R_next, G_next, B_next;
void setup() {
// put your setup code here, to run once:
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
R_prev = G_prev = B_prev = 0;
}
void pre2nxt(void)
{
double R_diff = double(R_next - R_prev) / 256.0;
double G_diff = double(G_next - G_prev) / 256.0;
double B_diff = double(B_next - B_prev) / 256.0;
for (int i = 0; i < 256; ++i){
analogWrite(LED_R, int(R_prev + R_diff * i));
analogWrite(LED_G, int(G_prev + G_diff * i));
analogWrite(LED_B, int(B_prev + B_diff * i));
delay(2);
}
}
void SetNextColor(void)
{
R_next = random(255);
G_next = random(255);
B_next = random(255);
}
void CopyNext2Prev(void)
{
R_prev = R_next;
G_prev = G_next;
B_prev = G_next;
}
void loop() {
SetNextColor();
pre2nxt();
CopyNext2Prev();
}


コメント