.NET Core嵌入式編程開關量GPIO(控制2個燈泡交替閃爍)


一、在樹莓派中安裝.NET Core運行時

    1、到微軟的官方站點下載.NET Core運行時 下載地址

 

       

  2、選擇Linux 中的ARM32,如果不需要跑web,可以選擇更精簡的.NET Core Binaries ARM32。
  借助xftp 把下載回來的壓縮包送到樹莓派里面。

        

  3、把壓縮包解壓縮處理,並建立軟連接,即可安裝完成.NET Core

  sudo mkdir /usr/share/dotnet(新建文件夾)   

  sudo tar -xvf dotnet-sdk-3.0.100-linux-arm.tar.gz -C /usr/share/dotnet(解壓運行時並復制到相應文件夾)   

  sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet(並建立軟連接)

       執行命令看一下.NET Core 安裝情況         

  dotnet --info

    

  4、燈泡接線

  通用輸出GPO,輸出控制信號,常見有推挽輸出和開漏輸出兩種模式,了解即可,非單片機專業無需精通。

    • 推挽輸出。直接輸出高低電平,可以GND+IO 或VCC+IO 兩種接線。

    • 開漏輸出。只能輸出低電平或者空,低電平時讓電流“漏進來”,常用於外接放大電路控制5V/12V 等場合。

      LED 小燈。單片機學習的經典,簡單使用,很容易看到效果。有源蜂鳴器。輸出低電平時鳴叫。例程中我們直接控制使用兩個IO 口作為輸出,分別控制LED 小燈和蜂鳴器,也可以是兩個小燈。接線方案如下,選擇GPIO17 和GPIO23,也就是板子的11 腳和16 腳(如下圖)。這兩個腳附近都有GND,方便接線。這里選擇IO 引腳時一定要注意,強烈建議不要選擇有端口復用功能(小括號有寫)的引腳,例如GPIO04,這些引腳很可能會產生意想不到的信號。

          

  注意,引腳模塊為Logical 時,采用邏輯引腳17 和23,如若選擇Board,則代碼需要寫11 和16。
  效果:兩個燈交

  5、編寫.NET Core程序

   新建.Net Core 控制台項目,從nuget 引用System.Device.Gpio,在Program.cs中寫入以下代碼:

using System;
using System.Device.Gpio;
using System.Threading;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            int pin1 = 17, pin2 = 23;
            using var gpio = new GpioController(PinNumberingScheme.Logical);
            gpio.OpenPin(pin1, PinMode.Output);
            gpio.OpenPin(pin2, PinMode.Output);
            var flag = false;
            for (int i = 0; i < 200; i++)
            {
                var pv1 = flag ? PinValue.High : PinValue.Low;
                var pv2 = !flag ? PinValue.High : PinValue.Low;
                flag = !flag;

                gpio.Write(pin1, pv1);
                gpio.Write(pin2, pv2);
                Thread.Sleep(500);
            }
        }
    }
}

 

  5、發布並上傳至樹莓派

  然后使用 dotnet XXX.dll 運行程序(注意文件夾如果程序上傳到根目錄則直接運行,不是跟目錄則cd到相應文件夾位置運行)

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM