LED を点滅させる
汎用 I/O (GPIO) ピンは、個別に制御できます。 これは、LED、リレー、その他のステートフル デバイスを制御する場合に便利です。 このトピックでは、.NET とお使いの Raspberry Pi の GPIO ピンを使用して、LED に電力を供給し、繰り返し点滅させます。
前提条件
- ARM ベース (ARMv7 以降) シングルボード コンピューター (SBC)
- 5 mm LED
- 330 Ω の抵抗
- ブレッドボード
- ジャンパー ワイヤ
- Raspberry Pi GPIO ブレークアウト基板 (省略可能、推奨)
- .NET SDK 7 以降
注意
このチュートリアルは、ターゲット デバイスを Raspberry Pi と想定して記述されています。 ただし、このチュートリアルは、Orange Pi や ODROID など、.NET をサポートしているあらゆる Linux ベースの SBC に利用できます。
デバイスで SSH が有効になっていることを確認します。 Raspberry Pi については、Raspberry Pi のドキュメントの「SSH サーバーの設定」を参照してください。
ハードウェアを準備する
ハードウェア コンポーネントを使用して、次の図に示すような回路を構築します。
上の図では、次の接続が示されています。
- GPIO 18 から LED の陽極 (長い正のリード) へ
- LED の陰極 (短い負のリード) から 330 Ω の抵抗 (どちらかの端) へ
- 330 Ω の抵抗 (他の端) からグラウンドへ
必要に応じて、次のピン配列図を参照してください。
画像提供: Raspberry Pi Foundation。
ヒント
GPIO ヘッダーへの接続を効率化するには、ブレッドボードと組み合わせた GPIO ブレークアウト ボードを使用することをお勧めします。
アプリを作成する
お好みの開発環境で、次の手順を実行します。
.NET CLI または Visual Studio を使用して、新しい .NET コンソール アプリを作成します。 「BlinkTutorial」という名前を指定します。
dotnet new console -o BlinkTutorial cd BlinkTutorial
System.Device.Gpio パッケージをプロジェクトに追加します。 プロジェクト ディレクトリまたは Visual Studio から .NET CLI を使用します。
dotnet add package System.Device.Gpio --version 2.2.0-*
Program.cs の内容を次のコードで置き換えます。
using System; using System.Device.Gpio; using System.Threading; Console.WriteLine("Blinking LED. Press Ctrl+C to end."); int pin = 18; using var controller = new GpioController(); controller.OpenPin(pin, PinMode.Output); bool ledOn = true; while (true) { controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); Thread.Sleep(1000); ledOn = !ledOn; }
上のコードでは以下の操作が行われます。
-
using 宣言によって、
GpioController
のインスタンスが作成されます。 このusing
宣言により、オブジェクトが破棄され、ハードウェア リソースが適切に解放されます。 - 出力用に GPIO ピン 18 が開かれています
-
while
ループが無期限に実行されます。 それぞれの反復処理で、以下が実行されます。- GPIO ピン 18 に値を書き込みます。
ledOn
が true の場合は、PinValue.High
(オン) を書き込みます。 それ以外の場合は、PinValue.Low
を書き込みます。 - 1000 ミリ秒スリープします。
-
ledOn
の値を切り替えます。
- GPIO ピン 18 に値を書き込みます。
-
using 宣言によって、
アプリをビルドします。 .NET CLI を使用している場合は、
dotnet build
を実行します。 Visual Studio でビルドするには、Ctrl+Shift+B キーを押します。アプリを自己完結型アプリとして SBC にデプロイします。 手順については、「Raspberry Pi への .NET アプリのデプロイ」を参照してください。
chmod +x
を使用して実行可能ファイルの 実行 アクセス許可を指定してください。配置ディレクトリに切り替え、実行可能ファイルを実行することで、Raspberry Pi でアプリを実行します。
./BlinkTutorial
LED は毎秒点滅します。
Ctrl+C キーを押してプログラムを終了します。
おめでとうございます。 GPIO を使って LED を点滅させることができました。
ソース コードを入手する
このチュートリアルのソースは、GitHub から入手できます。
次の手順
.NET