まえがき
OLEDなどのディスプレイを購入しても良かったのですが、LEDをUIとして使う方が今後の目的にマッチするので、リング状にLEDが16個配置されているマイコン制御可能なモジュールを購入しました。
筆者が購入したショップにはLEDの数が8,16,24,35,45個の5種類有りました。
基盤の切断部分の処理が、かなり適当で汚いので自分で綺麗にする必要がありました。
使用したモノ
- Arduino Uno R3 (互換機) 1個
- LEDリングモジュール 1個
- ジャンパー線 3本
環境
Arduino IDE 2.3.4
使用ライブラリ
Adafruit_NeoPixel 1.12.3
配線
今回はDOUTを使用しませんでしたが、DOUTを別のモジュールのDINに繋いでLEDの数を更に増やして行く事が可能なようです。
既に16個繋がっているので、その場合は外部電源が必要になりそうです
サンプルコード
Githubに紹介されていたコードにBRIGHTNESS設定のみ追加しました。
初期設定のままだと眩しすぎるので。
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define NUMPIXELS 16
#define BRIGHTNESS 10
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
pixels.begin();
pixels.setBrightness(BRIGHTNESS);
}
void loop() {
pixels.clear();
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 150, 0));
pixels.show();
delay(DELAYVAL);
}
}
問題なければ、時計回りに緑色のLEDが点灯して行くサイクルが始まります。
コードの中身は基本的にLEDを点灯させているだけなので、思ったよりシンプルでした。
関連記事
参考リンク
GitHub - adafruit/Adafruit_NeoPixel: Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)
Arduino library for controlling single-wire LED pixels (NeoP...
コメント