0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#でIoTプログラミング on ESP32 #2

Last updated at Posted at 2025-02-05

今回はオンボード上のRGBLED(NeoPixel)を操作したいと思います。
オンボード上のRGBLEDはNeoPixel(WS2812C)となっています。
WS28xx用のパッケージを導入することで簡単に制御することができます。

パッケージの導入は前回の記事を参照してください。

ハードウェア

・Freenove ESP32-S3-WROOM Board
 (他のボードでも動作するかもしれませんが、LEDの型番が違う場合コードの一部を修正する必要があります。)

導入するパッケージ

・nanoFramework.iot.Device.Ws28xx.Esp32
 (Esp32が付かないパッケージもありますが、これはEsp32以外のボード向けになります。)

プログラミング

・新規プロジェクトを作成します。プロジェクト名は「ESP32S3_RGBLED」としました。

・コードを入力する前にパッケージは導入してください。

・コードは次のようになります。

Program.cs
using Iot.Device.Ws28xx.Esp32;
using System.Drawing;
using System.Threading;

namespace ESP32S3_RGBLED
{
   public class Program
   {
       public static void Main()
       {
           const int count = 1;    //LEDの数 オンボードLEDが対象なので1
           const int ledPin = 48;  //LEDを接続しているGPIO番号

           Color[] rainbow = { Color.Red,          //配列に点灯パターンを登録 
                               Color.Orange, 
                               Color.Yellow, 
                               Color.Green, 
                               Color.DarkCyan, 
                               Color.DarkBlue, 
                               Color.Purple, 
                             };    

           //接続しているLEDの型番によって変わります。Ws2812b,Ws2815b,sk6812など
           Ws28xx led = new Ws2812c(ledPin, count);
           
           BitmapImage img = led.Image;

           while (true)
           {     
               foreach (Color color in rainbow)
               {
                   img.SetPixel(0, 0, color);      //順番に色を設定
                   led.Update();                   //設定した色を反映 アップデートしないと色が変わらない
                   Thread.Sleep(1000);             //1秒待機
               }
           }
       }
   }
}

・制御方法は SetPixel(x座標,y座標,色) を指定して、表示をアップデートすることでLEDを様々な色で光らせることができます。Ws28xxクラスは複数のLEDを制御できるようになっています。x座標,y座標を指定することで順番にLEDの色を指定することができます。

別の機会に複数のLEDを制御するプログラムを紹介したいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?