閃爍 LED

一般用途的輸入/輸出 (GPIO) 接腳可以受到個別控制。 這適用於控制 LED、轉送和其他具狀態裝置。 在本主題中,您將使用 .NET 和 Raspberry Pi 的 GPIO 針腳來提供 LED 電源,並重複閃爍。

必要條件

  • ARM 型 (ARMv7 或更新版本) 單一面板電腦 (SBC)
  • 5 mm LED
  • 330 Ω 電阻器
  • 試驗電路板
  • 跳線
  • Raspberry Pi GPIO 分線板 (可選擇/建議使用)
  • .NET SDK 7 或更新版本

注意

本教學課程是以 Raspberry Pi 為目標裝置所撰寫。 不過,本教學課程可用於支援 .NET 的任何 Linux 型 SBC,例如 Orange Pi、ODROID 等等。

確定您的裝置上已啟用 SSH。 如需 Raspberry Pi,請參閱 Raspberry Pi 文件中的設定 SSH 伺服器

準備硬體

使用硬體元件來建置線路,如下圖所示:

顯示具有 LED 和電阻器的線路的 Fritzing 圖表

上圖描述了下列連接方式:

  • GPIO 18 到 LED 陽極 (較長的陽極接腳)
  • LED 陰極 (較短的負極接腳) 到 330 Ω 電阻器的任一端
  • 330 Ω 電阻器 (另一端) 到地面

請視需要參閱下列插腳輸出圖:

由 Raspberry Pi Foundation 所提供顯示 Raspberry Pi GPIO 連接器封裝接腳的圖表。
圖片由 Raspberry Pi 基金會提供

提示

建議將 GPIO 分線板與試驗電路板搭配使用,以簡化 GPIO 接頭的連接過程。

建立應用程式

在慣用的開發環境中完成下列步驟:

  1. 使用 .NET CLIVisual Studio建立新的 .NET 主控台應用程式。 將其命名為 BlinkTutorial。

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. System.Device.Gpio 套件新增至專案。 從專案目錄或Visual Studio使用.NET CLI

    dotnet add package System.Device.Gpio --version 2.2.0-*
    
  3. 以下列程式碼取代 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 迴圈會無限期執行。 每個反覆項目:
      1. 將值寫入 GPIO 接腳 18。 若 ledOn 為 true,則會在其上寫入 PinValue.High。 否則就會寫入 PinValue.Low
      2. 睡眠 1000 毫秒。
      3. 切換 ledOn的值。
  4. 建置應用程式。 如果使用 .NET CLI,請執行 dotnet build 。 若要在 Visual Studio 中建置,請按 Ctrl+Shift+B

  5. 將應用程式部署至 SBC 做為獨立應用程式。 如需指示,請參閱 將 .NET 應用程式部署至 Raspberry Pi。 請務必使用 chmod +x 提供可執行檔「執行」權限。

  6. 切換至部署目錄並執行可執行檔,以在 Raspberry Pi 上執行應用程式。

    ./BlinkTutorial
    

    LED 會每秒閃爍一次。

  7. Ctrl+C 以終止程式。

恭喜! 您使用了 GPIO 讓 LED 閃爍。

取得原始程式碼

本教學課程中的來源位於 GitHub

下一步