ESP32 チュートリアル 12/55 - SunFounder の ESP32 IoT 学習キットを使用した WS2812 RGB ストリップ 4 プロジェクト

ESP32 チュートリアル 12/55 - SunFounder の ESP32 IoT 学習キットを使用した WS2812 RGB ストリップ 4 プロジェクト

このチュートリアルでは、ESP32マイクロコントローラーを使用してWS2812 LEDストリップを制御する方法を探ります。このプロジェクトでは、さまざまな色を作成し、各LEDを個別に制御することができ、プログラミングと電子工学について学ぶための楽しく視覚的に魅力的な方法を提供します。このチュートリアルの終わりまでには、色やパターンを動的に変更できる完全に機能するセットアップが完成します。

SunFounder-ESP32-レッスン-12-LEDストリップ.mp4_スナップショット_00.02.422

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温度に注意し、適切な熱放散を確保してください。
  • 電源と接地を接続する際は、正しい極性を守ってください。
  • 長いストリップを使用する場合は、データラインにプルアップ抵抗を利用してください。

配線指示

ESP32-12-WS2812-wiring

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 前後の光

画像

ESP32-12-WS2812-wiring
ESP32-12-WS2812-wiring
ESP32-12-WS2812-schematic
ESP32-12-WS2812-schematic
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
SunFounder-ESP32-Lesson-12-LED-Strip.mp4_snapshot_00.02.422
811-ESP32 Tutorial 12/55- Arduino code for WS2812 RGB LED stripe using ESP32
言語: C++
コピーしました!

必要かもしれないもの

リソースと参考文献

まだリソースはありません。

ファイル📁

ファイルは利用できません。