Arduino夏休み<架空>ワークショップ 3回で読み切りの番外編「たくさんのLED」

 LED 1個だけ光らすだけって実験としてもおもしろくもなんともない、!と感じたあなた。Makersとしての素質があります。

 複数のLEDをいろいろなタイミングで光らすには工夫が重要です。しかし、ArduinoにはLEDが最大で20個しかつなげられません。何とかならないでしょうか。

フルカラー・シリアルLEDテープ(17cm)

 1mに切り分けた製品もあります。つなげていけばもっと長くできます。17cmの長さのLEDテープの動作電源は5V 0.53A(10個のLED)です。つながるLEDが増えると電流がその分必要になります。1mでは3.18A(60個のLED)です。17cmで全部点灯したときに流れる530mAは、USBハブの規格500mAを超えています。したがって、USB経由5V電源は1A程度のアダプタを利用します。

 テスト時には、最大輝度で長時間点灯しなければ、PCにつないだUSBケーブルからの電源で動作できるでしょう。

 購入したら、配線用のケーブルをはんだ付けします。写真はDOに黄色のケーブルを接続していますが、間違っていました。反対側のDIにはんだ付けします。

 はんだ付けしたケーブルのもう一方にはピンヘッダを取り付けました。+5V端子にはんだ付けした赤色のケーブルは5Vへ、GND端子にはんだ付けした黒色はGNDへ、DIへはんだ付けした黄色のケーブルは6番ピンへ接続します。配線のこの3本だけです。

スケッチ

 購入先のスイッチサイエンスの販売ページにもあるように、Adafruit_NeoPixelを使います。Web EditorのLibrariesからFavoritesのタブにあるLibrary Managerをクリックします。

 検索欄にAdafruit_NeoPixelを入れ、虫眼鏡のアイコンをクリックして検索します。見つかったAdafruit NeoPixelの右にある星印をマウスでクリックし、右下のDoneをクリックします。これで、動作に必要なライブラリが読み込まれます。

 LibrariesのFavoritesから新たに追加されたAdafruit NeoPixelのExamplesの中にあるbuttoncyclerを読み込みます。

 「→」をクリックしてスケッチを書きこみます。

 サンプルのsimpleを修正して、RGBの光り方を単純に記述しました。

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 10
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 50; // delay

void setup() {
pixels.begin(); // This initializes the NeoPixel library.
}

void showLEDtape(byte R,byte G,byte B) {
for(int i=0;i<NUMPIXELS;i++){
pixels.setPixelColor(i, pixels.Color(R,G,B+20*i)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(delayval); // Delay for a period of time (in milliseconds).
}
}

void loop() {
for ( int k=10; k<255 ; k=k+30) {
showLEDtape(k,100,0);
}
}

前へ

Arduino夏休み<架空>ワークショップ 3回で読み切りの最終回「Lチカ」

次へ

距離を正確に測る その4 TFMini