この記事の結論
- WS2812Bはチップの名前、NeoPixelはAdafruitがつけた製品ブランド名で、中身の仕組みはほぼ同じ
- データ線1本・電源2本(VCC・GND)の合計3本だけで、1つずつ違う色を光らせられる
- 1灯あたり最大約60mAの電流が必要なため、LEDの数が多くなるほどArduino本体のUSB電源だけでは足りなくなる
- データ線には330〜470Ω程度の抵抗を挟むと、信号の電圧スパイクや反射から先頭LEDのデータ入力を保護できる(突入電流対策は電源側の大容量コンデンサの役割)
単色のLEDを1つ点滅させる「Lチカ」に慣れてくると、次に挑戦したくなるのが、カラフルに光るイルミネーション工作です。
そこで活躍するのが、1本のテープに並んだLEDを1つずつ好きな色・明るさで光らせられる「フルカラーLEDテープ」、通称WS2812BやNeoPixelと呼ばれる部品です。
この記事では、WS2812Bの基本的な仕組みから、配線・ライブラリの使い方、実際のイルミネーション作品のアイデアまでを順番に整理します。
WS2812B・NeoPixelとは何か
1本の信号線で1つずつ個別に色を制御できる仕組み
一般的なフルカラーLED(4本足のRGB LED)は、1個ずつ独立した配線が必要で、たくさん並べようとすると配線の本数がどんどん増えてしまいます。
WS2812Bは、LED1つ1つに小さな制御チップが内蔵されていて、データ線1本を数珠つなぎにするだけで、何十個・何百個ものLEDを1つずつ別々の色で光らせられます。
Arduinoから送ったデータは、テープの先頭のLEDが自分の分だけ受け取って、残りのデータを次のLEDへそのまま送る、というリレー方式で伝わっていく仕組みです。
単色LEDの基本的な選び方や配線については、別の記事で詳しく整理しています。

WS2812Bはチップ名、NeoPixelはAdafruitのブランド名という関係
ここで少しややこしいのが呼び方で、「WS2812B」はLEDチップそのものの型番、「NeoPixel」はこのチップを使った製品にAdafruit社がつけたブランド名です。
つまり中身のチップが同じであれば、「WS2812B LEDテープ」と「NeoPixel LEDテープ」はほぼ同じ製品として扱えます。
制御用のライブラリも「Adafruit_NeoPixel」という名前のものがWS2812B系のLEDテープ全般で使えるため、購入する製品名にとらわれすぎず、対応チップの記載を確認するのがポイントです。
必要なもの、配線の基本
LEDテープ本体・データピン1本+電源2本
LEDテープの端には、通常「5V(またはVCC)」「GND」「DIN(データ入力)」の3本の配線が出ています。
VCCをArduinoの5Vへ、GNDをGNDへ、DINをArduinoの任意のデジタルピン(サンプルコードでは6番ピンがよく使われます)へつなぐだけで配線は完了です。
紹介した商品:WS2812B LEDテープ(1m・60灯)
BTF-LIGHTING WS2812B ECO LEDテープライト RGBIC 1m 60LEDs DC5V(IP30)
本文で扱ったWS2812B系の個別制御タイプ。1mに60灯が並ぶ、最初の1本として試しやすい長さです。
Amazon ¥1,399 / 楽天市場 ¥2,220
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
ただし、Arduinoの5Vピンからの給電でそのまま動かせるのは数灯程度の少ない灯数の場合に限られ、灯数が多い工作では後述する外部電源が必要になります。
データライン抵抗とパスコンの役割
データ線(DIN)とArduinoのピンの間には、330〜470Ω程度の抵抗を1本挟むことが推奨されています。
これは、データ線に乗ってしまう電圧スパイクや信号の反射から、先頭のLEDチップのデータ入力端子を守るための保護対策です。
この抵抗は、Arduino側ではなくLEDテープ側の入力端子のすぐ近くに入れるのが推奨されています。
紹介した商品:よく使う値がそろった抵抗器セット
ELEGOO 17値1%抵抗器、0オーム〜1Mオーム(525本)
220Ω・1kΩ・10kΩなど、この記事で紹介した値を含む17種類がまとまった1%精度品です。
Amazon ¥1,500
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
一方、電源投入時にLED側へ一気に流れ込む急激な電流(突入電流)を吸収する役割を持つのが、電源(VCC・GND)の間に入れる大きめの電解コンデンサ(1000μF程度)です。
このコンデンサを1つ入れておくと、電源投入時の電圧変動を吸収でき、LEDの誤点灯や先頭LEDの故障を防ぎやすくなります。
コンデンサの種類や容量の読み方については、別の記事で詳しく整理しています。
紹介した商品:電解コンデンサ 1000μF 16V
Kaito Denshi(海渡電子) 電解コンデンサ 16V 1000μF 10×13mm 10個入り
LEDテープの電源ラインに入れる、1000μF程度の大容量タイプ。極性の向きに注意して使います。
Amazon ¥699(10個入り) / 楽天市場 ¥1,070(10個入り)
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
電源容量の考え方
WS2812Bは1灯を白色フル点灯させると最大で約60mAの電流を消費し、たとえば30灯のテープを全灯フル点灯させると、単純計算で約1.8A(1800mA)もの電流が必要になります。
ArduinoのUSB電源だけでこの電流をまかなうのは現実的ではなく、LEDの本数が多い工作では別途5VのACアダプタなど外部電源が必須になります。
紹介した商品:5V 2A ACアダプタ
PSE認証取得 ACアダプター 5V2A センタープラス DC5.5×2.1mm
LEDテープの外部電源に使える5V・2Aのタイプ。灯数が増えたら、必要な電流に合わせて容量を選びます。
Amazon ¥1,419 / 楽天市場 ¥2,903
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
外部電源を使う場合は、Arduino側のGNDとLEDテープ側の外部電源のGNDを必ず共通につないでおく(共通GND)ことを忘れないようにしてください。

ArduinoにUSB経由で電源供給する場合、setBrightness()で明るさを抑える前提であれば、数灯程度までの小規模な工作はArduino単体のUSB給電でも動かせます。
白色フル点灯のまま灯数を増やすと、すぐにUSBの供給能力(500mA程度)を超えてしまうため、それ以上の規模では外部電源を検討してください。
ライブラリのインストールとサンプルコード
Adafruit_NeoPixelライブラリの導入
Arduino IDEのライブラリマネージャで「NeoPixel」と検索し、「Adafruit NeoPixel」というライブラリをインストールします。
ライブラリマネージャの基本的な使い方や、インストール時によくあるトラブルの対処法は、別の記事で詳しく整理しています。
単色点灯・レインボーサンプル
まずは全灯を1色で光らせる、最小構成のスケッチです。
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 30
Adafruit_NeoPixel strip(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.setBrightness(50); // 明るさは0〜255、電流を抑えるため控えめに
strip.show();
}
void loop() {
for (int i = 0; i < NUMPIXELS; i++) {
strip.setPixelColor(i, strip.Color(0, 150, 255)); // 水色
}
strip.show();
}
setBrightness()で明るさの上限を抑えておくと、消費電流も一緒に抑えられるため、電源に不安がある構成では特に有効です。
色の指定はR(赤)・G(緑)・B(青)の3つの数値(各0〜255)の組み合わせで、strip.Color(255, 0, 0)なら赤、strip.Color(0, 255, 0)なら緑になります。
Adafruit_NeoPixelライブラリには、虹色に光らせる「レインボー」のサンプルスケッチも標準で付属しているので、ライブラリマネージャからのインストール後、メニューの「ファイル」→「スケッチ例」から一度試してみることをおすすめします。
イルミネーション作品のアイデア
光が流れるように見せるパターン
for文とdelay()を組み合わせて、点灯するLEDの位置を1つずつずらしていくと、光が流れるように見える「ランニングライト」の演出が作れます。
点灯位置を保持する変数を用意し、loop()のたびにその変数を1ずつ増やしながら該当するLEDだけを光らせる、という組み方が基本です。
変数を使った値の保持やif文での条件分岐(末尾に到達したら先頭に戻す、など)の考え方は、別の記事で詳しく整理しています。

音や動きに反応させる発展アイデア
もう一歩発展させたいなら、人感センサーと組み合わせて「人が近づいたときだけ点灯する」イルミネーションにするのも定番のアイデアです。
人感センサー・超音波距離センサーの使い方は、人感・超音波距離センサーの使い方の記事で詳しく解説しています。
紹介した商品:人感センサーモジュール(HC-SR501)
HC-SR501 人体赤外線感応モジュール
配線ピンが少なく、初めてのセンサーとして扱いやすいモデルです。
Amazon ¥475
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
音量に反応させたい場合は、サウンドセンサー(マイクモジュール)のアナログ出力値をif文でしきい値判定し、値が大きいほど明るく光らせる、といった組み方も可能です。
紹介した商品:サウンドセンサーモジュール
サウンドセンサーモジュール LM393 Arduino用 3個セット
音の大きさに反応するマイクモジュール。アナログ出力の値でLEDの明るさを変える工作に使えます。
Amazon ¥695(3個セット) / 楽天市場 ¥994(3個セット)
※価格は記事執筆時点のものです。購入前に最新価格をご確認ください。
安全に使うための注意点
発熱・電流容量オーバーへの注意
外部電源を使ってLEDテープを長時間フル点灯させる場合、テープ自体やケーブルがほんのり温かくなることがあります。
ACアダプタやケーブルの許容電流を超えて使い続けると発熱が大きくなるため、灯数を増やす場合は電源側の定格電流にも余裕を持たせておいてください。
作品を布や紙などの燃えやすい材料と組み合わせる場合は、LEDテープの発熱に十分余裕を持たせた明るさ設定にする、密閉した箱の中に押し込めない、といった配慮も忘れないようにしてください。
まとめ:必要な部品と作業ステップ早見表
最後に、LEDテープ工作を進めるステップと、それぞれで必要な部品を表にまとめます。
| ステップ | 必要なもの | ポイント |
|---|---|---|
| 1. 配線 | LEDテープ、330〜470Ωの抵抗、ジャンパー線 | データ線に抵抗を1本挟む |
| 2. ライブラリ導入 | Adafruit_NeoPixelライブラリ | ライブラリマネージャで検索・インストール |
| 3. 点灯テスト | 基本スケッチ | setBrightness()で明るさを控えめに |
| 4. 灯数を増やす | 5V外部電源、電解コンデンサ | 共通GNDを忘れずに接続 |
| 5. 演出作り込み | for文・変数・(必要なら)人感センサー | ランニングライトや反応型に発展 |
取り組む前に、以下の点がなんとなくつかめているか確認してみてください。
- データ線1本で複数のLEDを個別に制御できる仕組みの見当がついている
- 灯数が増えるほど外部電源が必要になるという電流の目安がつかめている
- Adafruit_NeoPixelライブラリの基本的な使い方(setPixelColor・show)のイメージが分かっている
光る工作の基本がつかめたら、夏休みの自由研究や、他のセンサーと組み合わせた作品作りにもぜひ挑戦してみてください。


コメント