共用方式為


讓 LED 閃爍

一般用途 I/O(GPIO)引腳可以個別控制。 這對於控制 LED、轉送和其他具狀態裝置很有用。 在這個主題中,你會使用 .NET 和 Raspberry Pi 的 GPIO 腳位來供電給 LED 並反覆閃爍。

先決條件

  • ARM 型 (ARMv7 或更新版本) 單板電腦 (SBC)
  • 5 毫米 LED
  • 330 Ω電阻
  • 麵包板
  • 跳線
  • Raspberry Pi GPIO 擴展板(可選/建議)
  • .NET SDK 8 或更新版本

備註

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

確定您的裝置上已啟用 SSH。 針對Raspberry Pi,請參閱Raspberry Pi檔中的設定 SSH 伺服器。

準備硬體

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

顯示LED和電壓電路的 Fritzing 圖表

上圖描述下列連線:

  • GPIO 18 至 LED 陽極(較長,正引腳)
  • LED 陰極(較短,負極引線)接至330 Ω電阻(任一端)
  • 330 Ω電阻(另一端)接地

視需要參閱下列接腳圖:

此圖顯示 Raspberry Pi GPIO 接頭的引腳排列。圖片由 Raspberry Pi Foundation 提供。
圖片由Raspberry Pi Foundation 提供。

小提示

建議使用 GPIO 分流板搭配麵包板,以簡化與 GPIO 標頭的連接。

建立應用程式

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

  1. 請使用 .NET CLIVisual Studio 建立一個新的 .NET 控制台應用程式。 將它命名為 BlinkTutorial。

    dotnet new console -o BlinkTutorial
    cd BlinkTutorial
    
  2. 將 System.Device.Gpio 套件新增至專案。 請使用專案目錄中的 .NET CLIVisual Studio

    dotnet add package System.Device.Gpio --version 3.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 宣告會建立的實例。 宣告 確保物件被處置且硬體資源被正確釋放。
    • GPIO 針腳 18 已開啟輸出
    • 迴圈會無限期執行。 每次迭代
      1. 將值寫入 GPIO 針腳 18。 如果 為 true,則會寫入 (on) 。 否則,它會寫入 。
      2. 睡眠 1000 毫秒。
      3. 切換的值。
  4. 建置應用程式。 如果使用 .NET CLI,請執行 dotnet build。 要在Visual Studio中建構,請按 Ctrl+Shift+B

  5. 將應用程式部署至 SBC 作為獨立應用程式。 相關說明請參考 Deploy .NET 應用程式到 Raspberry Pi。 請務必使用 提供可執行檔許可權。

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

    ./BlinkTutorial
    

    LED 會每隔一秒閃爍一次。

  7. 按 CtrlC 終止程式。

祝賀! 您已使用 GPIO 來閃爍 LED。

取得原始程式碼

本教學的原始碼為 可於 GitHub 取得。

後續步驟

瞭解如何使用 GPIO 讀取二進位輸入