ESP32 チュートリアル 12/55 - SunFounder の ESP32 IoT 学習キットを使用した WS2812 RGB ストリップ 4 プロジェクト
このチュートリアルでは、ESP32マイクロコントローラーを使用してWS2812 LEDストリップを制御する方法を探ります。このプロジェクトでは、さまざまな色を作成し、各LEDを個別に制御することができ、プログラミングと電子工学について学ぶための楽しく視覚的に魅力的な方法を提供します。このチュートリアルの終わりまでには、色やパターンを動的に変更できる完全に機能するセットアップが完成します。
SunFounderのESP32マイクロコントローラーを使用することで、内蔵のWi-FiおよびBluetooth機能を備えたWS2812 RGB LEDストリップを簡単に接続および制御できます。このLEDストリップの柔軟性により、装飾照明や教育プロジェクトなど、創造的な用途に利用できます。手順をよりよく理解するために、動画(00:00の動画)を参照してください。
ハードウェアの解説
このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラーとWS2812 LEDストリップが含まれています。ESP32は、Arduinoと同様のタスクを実行できる強力なマイクロコントローラーですが、接続オプションが追加されています。クラウドに接続できる豊富な機能を備えており、遠隔操作やデータロギングを可能にします。
WS2812 LEDストリップは、それぞれ個別にアドレス指定可能なRGB LEDで構成されており、各LEDは異なる色を表示するよう制御できます。このストリップは単線プロトコルで動作し、複数のLEDを連結しても信号品質を損なうことはありません。各LEDには、入力信号を受け取り、次のLEDに向けて増幅する内蔵ドライバが含まれています。
データシートの詳細
| 製造業者 | ワールドセミ |
|---|---|
| 部品番号 | WS2812 |
| ロジック/入出力電圧 | 3.5-5.3 V |
| 供給電圧 | 5 V |
| 出力電流(チャネルごと) | 最大20 mA |
| ピーク電流(チャネルごと) | 最大60 mA |
| PWM周波数ガイダンス | 400 Hz |
| 入力ロジックの閾値 | 0.3 x VDD0.7 x VへDD |
| 電圧降下 / RDS(on)/ サチュレーション | 0.5 V 最大 |
| 熱的限界 | -25から80 °C |
| パッケージ | 5050 |
| ノート / バリアント | 長いストリップのために連結できます。 |
- LEDの損傷を避けるために、適切な電源供給(5 V)を確保してください。
- 電源端子間にコンデンサー(100 µF)を使用して電圧スパイクを平滑化します。
- データ配線は短く保ち、信号の劣化を減らしてください。
- LED温度に注意し、適切な熱放散を確保してください。
- 電源と接地を接続する際は、正しい極性を守ってください。
- 長いストリップを使用する場合は、データラインにプルアップ抵抗を利用してください。
配線指示

WS2812 LEDストリップをESP32に接続するには、まず電源を接続します。LEDストリップの+5VワイヤーはESP32の5Vピンに接続し、グラウンド(GND)ワイヤーはESP32のGNDピンのいずれかに接続する必要があります。
次に、LEDストリップのデータ入力線をESP32のピン14に接続します。接続が確実であることを確認して、適切なデータ伝送を保証してください。複数のストリップや長距離を使用する場合は、信号の整合性を確保するためにレベルシフターの使用を考慮してください。この設定により、ESP32から直接LEDストリップを制御することができます。
コード例とウォークスルー
コードは、WS2812 LEDストリップを制御するためにAdafruit NeoPixelライブラリを使用しています。最初にLEDストリップを初期化し、初期色を黒に設定します。コード内の主要な識別子にはLED_PINLEDストリップのデータラインに接続されたピンを定義する、そしてNUM_LEDSストリップ内のLEDの数を指定するものです。
#include // Include the Adafruit NeoPixel library
#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs
セットアップ関数では、ストリップが初期化されます。strip.begin()初期の色は黒に設定されています。strip.show()プログラムが実行されると、カラー変更のためにストリップを準備します。
void setup() {
strip.begin(); // Initialize the NeoPixel strip
strip.show(); // Set initial color to black
}
プログラムのメインループは2つのforループで構成されています。最初のループは、各LEDの色を設定し、ストリップを更新することによって、1つずつLEDをオンにします。2番目のループは、同様の方法で各LEDをオフにします。これにより、シンプルですが効果的なライトアニメーションが作成されます。
void loop() {
// Turn on LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
// Turn off LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
}
この記事の下にある完全なコードを見て、さまざまなカラー効果やアニメーションを実装する方法についての詳細を確認してください。
デモンストレーション / 期待すること
配線が完了し、コードをアップロードすると、ストリップのLEDが指定された色で1つずつ点灯し、その後同じ順序で消灯します。これにより「ランニングライト」効果が生まれます。LEDが予想通りに点灯しない場合は、配線接続を再確認し、電源が適切であることを確認してください。また、コードで正しいピンが定義されているかも確認してください(ビデオの:30)。
ビデオのタイムスタンプ
- 00:00 開始
- 1:40 WS2812 LEDの紹介
- 7:25 プロジェクトドキュメンテーションページ
- 9:16 RGBカラーの説明
- 13:16 配線の説明
- 13:48 Arduinoコード-1の説明
- 19:03 Arduino IDEでESP32ボードとポートを選択中
- 20:45 コード-1 デモ
- 22:00 個々のLEDを制御する
- 24:16 ウォーキングライトLED
- 25:41 前後の光
#include <Adafruit_NeoPixel.h> // Adafruit NeoPixelライブラリを含める
#define LED_PIN 14 // NeoPixel LEDストリップ
#define NUM_LEDS 8 // LEDの数
// Adafruit_NeoPixelクラスのインスタンスを作成する
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin(); // NeoPixelストリップを初期化します
strip.show(); // 初期の色を黒に設定する
}
void loop() {
// LEDを1つずつ点灯させる
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // i番目のLEDの色を赤に設定する
strip.show(); // 新しい色でLEDストリップを更新してください。
delay(100); // 100ミリ秒待ってください
}
// LEDを1つずつ消してください。
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // i番目のLEDの色を黒に設定します(消灯します)
strip.show(); // 新しい色でLEDストリップを更新してください。
delay(100); // 100ミリ秒待ってください
}
}
Common Course Links
Common Course Files
必要かもしれないもの
-
アマゾンAmazonでWS2812 LEDストリップを購入するamzn.to
-
イーベイeBayからWS2812 LEDストリップを購入するebay.us
-
アリエクスプレスAliExpress から WS2812 LED ストライプを購入するs.click.aliexpress.com
-
アリエクスプレスAliExpressからWS2812 LEDストライプを購入する-2s.click.aliexpress.com
-
バングッドBanggoodからWS2812 LEDストリップを購入するbanggood.com
リソースと参考文献
まだリソースはありません。
ファイル📁
ファイルは利用できません。