こんにちは、エンジニアのオオバです。
電子工作初心者の憧れは LEDテープライト です。
あのキラキラしたLEDテープライトは
一度プログラミングで動かしたいものです。
今回は先日Amazonで購入した
LEDテープライトをArduinoで動かしてみたいと思います。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
用意するもの
LEDテープのライブラリインストール
LEDテープを動かすためのライブラリが公開されていて、
今回はそれを使います。
使用するためにライブラリを
Arduino IDEにインストール します。
ツール > ライブラリ管理
から
ライブラリマネージャを開きます。
![ArduinoでLEDテープライトを光らせる方法_0](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190430/20190430000337.png#750__420)
- Adafruit neoMatrix 1.1.2
- Adafruit NeoPixel 1.2.1
上記2つのライブラリをインストール。
ソースコードは記事末尾で公開 していますので、
そちらを参考にしてください。
電源供給モジュールの接続
さっそく回路を組んでいきます。
![ArduinoでLEDテープライトを光らせる方法_1](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190430/20190430005509.png#683__500)
このようにブレッドボードに
電源供給モジュール(黒いパーツ) を接続して
LEDテープライトに電源供給させます。
ArduinoとPCはUSB接続をしています。
電源供給モジュールの詳細です。
![ArduinoでLEDテープライトを光らせる方法_2](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190430/20190430011648.png#673__500)
5V電圧が必要なので、
上図のように5V電圧の方を使用して回路を繋ぎます。
電源供給モジュールを使用している理由は、
LEDテープライトはたくさんのLEDを同時に光らせるため です。
Arduinoの入力5V電圧だと
損傷する可能性 あります。
ということで 電源は別で用意 しているわけです。
今回は以前購入していたスターターキット同梱の
電源供給モジュールを使用しました。
![ArduinoでLEDテープライトを光らせる方法_3](https://i.gyazo.com/79edb3ac843a3ffa61b5a78deaffa305.png#303__304)
ELEGOO Arduino用UNO R3スターターキット
いろんなパーツがお手頃価格で手に入るため、
初心者にはオススメパック です。
LEDテープライトとArduino側のケーブル接続
![ArduinoでLEDテープライトを光らせる方法_4](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190430/20190430005722.png#688__500)
- LEDテープライトの緑ケーブルはデジタルピン(プログラムで指定)
- LEDテープライトの黒ケーブルはGNDへ
それぞれ繋ぎます。
完成 : イルミネーションできた!!
![ArduinoでLEDテープライトを光らせる方法_5](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190430/20190430003435.gif)
動かしてみると、
見事にテープLEDがイルミネーションしました。
すごくきれい!!
クリスマスのツリーにつけたり、
誕生日会のデコレーションといった
アイデアが浮かんできますね。
子供が喜びそうです。
まとめ : ArduinoでLEDテープライトを光らせる方法
記事の内容を簡単にまとめます。
- LEDテープライトは電源モジュールを使う
- ライブラリを使うと簡単に実装できる
- スターターキットは初心者にオススメ
- LEDテープライトはキレイ
こんな感じです。
電子工作は手元で触れる「モノ」が動くっていうのがロマンです。
モニタの中でしか動かないプログラミングとはまた
別の魅力があります。
次は何を動かしてみようかな。
最後にサンプルコード全体を共有
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define LED_NUM 50 //LEDの数
Adafruit_NeoPixel ledtape = Adafruit_NeoPixel(LED_NUM, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
ledtape.begin();
ledtape.show();
}
void loop()
{
uint16_t i, j;
for(j = 0; j < 256; j++)
{
for(i = 0; i < ledtape.numPixels(); i++)
{
ledtape.setPixelColor(i, rotateColor(
((i * 256 / ledtape.numPixels()) + j) & 255)
);
}
ledtape.show();
delay(20);
}
}
//RGBの色の移り変わり関数
uint32_t rotateColor(byte WheelPos)
{
if(WheelPos < 85)
{
return ledtape.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
else if(WheelPos < 170)
{
WheelPos -= 85;
return ledtape.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
else
{
WheelPos -= 170;
return ledtape.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}
何かの参考になれば幸いです。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/e/esakun/20190429/20190429234719.png#1056.0__726.0)
この記事が気に入ったらフォローしよう
- Arduino IDE 1.8.9
- Adafruit neoMatrix 1.1.2
- Adafruit NeoPixel 1.2.1
- macOS HighSierra 10.13.6