C
Arduino
led
解散Day 8

ArduinoでLEDテープを光らせて遊ぶ

More than 1 year has passed since last update.

チームの制作でArduinoを使ってLEDテープを制御する必要があったのでそれの備忘録。

とりあえず光らせるところまで。

今回買ったLEDテープ

LEDテープといっても色々あるのですが今回はスイッチサイエンスさんで販売しているフルカラーシリアルLEDテープを購入しました。
https://www.switch-science.com/catalog/1399/

Adafruit NeoPixel Libraryというライブラリを使うことで簡単にArduinoからLEDを制御することができるということなのでこれを使うことにしました。

配線などは今回は割愛します。

ライブラリの準備

Githubにリポジトリが公開されているのでzipでDLします。
https://github.com/adafruit/Adafruit_NeoPixel

スクリーンショット 2017-12-08 0.16.03.png

ダウンロードしたらArduinoIDEを立ち上げ、
スケッチ=>ライブラリをインクルードから.ZIP形式のライブラリをインクルードをクリックします。

ダウンロードしたzipを選択し、ライブラリを導入します

ここまでできたら準備完了です。

実際に光らせるコードを描いてみましょう。

実装

led.c
//ライブラリインクルード
#include <Adafruit_NeoPixel.h>

#define LED_COUNT ( 30 )
#define DIGITAL_PIN ( 6 )

Adafruit_NeoPixel led = Adafruit_NeoPixel( LED_COUNT,DIGITAL_PIN , NEO_GRB + NEO_KHZ800);
void setup() {
  //初期化処理
  led.begin();
  led.show();
}

void loop() {

  ///色を設定
  //第一引数:何個目のLEDを光らせるか
  //第二引数:色を設定(RGB)
  led.setPixelColor( 1, led.Color(255,255,255));

  ///設定した情報をテープに送る!
  led.show();

}

これだけです。とってもシンプルです。
これを書き込み実行するとテープから2番目のLEDが点灯します。

IMG_4894.JPG
眩しい。

とても簡単に扱うことができるので例えばこのように・・・

for(int i = 0 ; i < LED_COUNT ; i++ )
{
led.setPixelColor(i-1,led.Color(0,0,0));
led.setPixelColor(i,led.Color(255,0,0));
led.show();
delay(40);
}

forでちょっと待機を挟みながら色をセット=>表示を繰り返していくだけで
・・・
IMG_1267.MOV.gif

このようにアニメーションっぽいことが実装できちゃいます。

まぁこの書き方だとledの数が0以下のもの指定しちゃってたり最後消えなかったりと問題大有りなのですがサンプルコードなので許して

あと10分で今日が終わってしまうのでとりあえず今回はここまでです。
なかなか使い道が見出しにくいアイテムではありますが興味ある方はぜひやってみてください。