RP2040マイコンを使って、NeoPixelを制御して楽しもうというコンセプトです。
右のコネクタは、電池をつないでパソコンから離れても動くようにしています。
左のジャックから音声信号を入力してADコンバータに入力可能です。
ボタンが1つ or 2つ搭載しているので、外部入力または切り替えなどで使えます。
ArduinoIDE バージョン:2.3.2
Adafruit NeoPixel Library 1.12.2(2024.8.1時点の最新版は1.12.3)
①マイコン:PR2040-ZERO(RaspberryPiPico系)
②NeoPixel接続ピン GPI08(R1でショート)
③プッシュスイッチ1:GPI07
④プッシュスイッチ2:GPI06(2個搭載しているボードのみ)
⑤音声入力:GP26
ランダムにLEDを徐々に明るくして、暗くなるプログラムです。
どちらかというと見て癒されるガジェット的なプログラムです。
//ランダムでLEDを光らせるサンプルプログラム
#include <Adafruit_NeoPixel.h>
#define LED_PIN 8
#define NUM_LEDS 36
#define NUM_FLASHING_LEDS 24
#define BRIGHTNESS 16 // LEDの明るさを設定 (0~255)
// NeoPixelの設定
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.setBrightness(BRIGHTNESS); // 明るさを設定
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
// ランダムに選択されたLEDのインデックスを生成
int flashingIndices[NUM_FLASHING_LEDS];
for (int i = 0; i < NUM_FLASHING_LEDS; i++) {
flashingIndices[i] = random(NUM_LEDS);
}
// LEDをゆっくりと明るくする
for (int brightness = 0; brightness <= 128; brightness++) {
for (int i = 0; i < NUM_FLASHING_LEDS; i++) {
strip.setPixelColor(flashingIndices[i], strip.Color(0, brightness, brightness));
//strip.setPixelColor(flashingIndices[i], strip.Color(0, 0, brightness));
}
strip.show();
delay(10); // 明るさの変化速度を調整するための遅延
}
delay(500); // 最大の明るさに達した後の待機時間
// LEDをゆっくりと暗くする
for (int brightness = 128; brightness >= 0; brightness--) {
for (int i = 0; i < NUM_FLASHING_LEDS; i++) {
strip.setPixelColor(flashingIndices[i], strip.Color(0, brightness, brightness));
}
strip.show();
delay(10); // 明るさの変化速度を調整するための遅延
}
delay(500); // 最小の明るさに達した後の待機時間
}
LEDをほわんほわんと光らせてみたいなと思ってプログラミングしてみました。
思ったより見ていて癒される感じかと思います。
折角のカラーLEDなので、色を変えられると気分も変わって良いかもしれませんね。
水色でほわんほわんと光っている感じです。
gifに変換してアップをやってみましたが調整は慣れが必要そうですね。