こんにちは、エンジニアのオオバです。

電子工作初心者の憧れは LEDテープライト です。

※個人の感想です。

あのキラキラしたLEDテープライトは
一度プログラミングで動かしたいものです。

今回は先日Amazonで購入した
LEDテープライトをArduinoで動かしてみたいと思います。

→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら

用意するもの

LEDテープのライブラリインストール

LEDテープを動かすためのライブラリが公開されていて、
今回はそれを使います。

使用するためにライブラリを
Arduino IDEにインストール します。

ツール > ライブラリ管理から
ライブラリマネージャを開きます。

ArduinoでLEDテープライトを光らせる方法_0

上記2つのライブラリをインストール。

ソースコードは記事末尾で公開 していますので、
そちらを参考にしてください。

電源供給モジュールの接続

さっそく回路を組んでいきます。

ArduinoでLEDテープライトを光らせる方法_1

このようにブレッドボードに
電源供給モジュール(黒いパーツ) を接続して
LEDテープライトに電源供給させます。

ArduinoとPCはUSB接続をしています。

電源供給モジュールの詳細です。

ArduinoでLEDテープライトを光らせる方法_2

5V電圧が必要なので、
上図のように5V電圧の方を使用して回路を繋ぎます。

電源供給モジュールを使用している理由は、
LEDテープライトはたくさんのLEDを同時に光らせるため です。

Arduinoの入力5V電圧だと
損傷する可能性 あります。

ということで 電源は別で用意 しているわけです。

今回は以前購入していたスターターキット同梱の
電源供給モジュールを使用しました。

ArduinoでLEDテープライトを光らせる方法_3

ELEGOO Arduino用UNO R3スターターキット

いろんなパーツがお手頃価格で手に入るため、
初心者にはオススメパック です。

LEDテープライトとArduino側のケーブル接続

ArduinoでLEDテープライトを光らせる方法_4

それぞれ繋ぎます。

完成 : イルミネーションできた!!

ArduinoでLEDテープライトを光らせる方法_5

動かしてみると、
見事にテープLEDがイルミネーションしました。
すごくきれい!!

クリスマスのツリーにつけたり、
誕生日会のデコレーションといった
アイデアが浮かんできますね。

子供が喜びそうです。

まとめ : Arduinoで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);  
  }
}

何かの参考になれば幸いです。

オススメ記事
検証環境
参考サイト