19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

解散Advent Calendar 2017

Day 8

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

Last updated at Posted at 2017-12-08

チームの制作で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分で今日が終わってしまうのでとりあえず今回はここまでです。
なかなか使い道が見出しにくいアイテムではありますが興味ある方はぜひやってみてください。

19
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?