如何使用.net core來驅動樹莓派的IO信號?是我們的實際項目需求中,可能就會有這種小項目,我們要輸出一個IO信號,此處我們拿了樹莓派4做測試
一共有兩排引腳,引腳的順序定義及功能如下:
我們就參考兩側的灰色的索引文本就好了,好了,我們來新建項目了,新建一個.Net Core的項目,當然是用最新的VS2019了
然后安裝system.Device.GPIO 庫,會附帶一些庫信息。
然后我們寫程序:
static void Main( string[] args ) { Console.WriteLine( "請輸入你要控制的針腳:" ); int index = int.Parse( Console.ReadLine( ) ); System.Device.Gpio.GpioController controller = new System.Device.Gpio.GpioController( System.Device.Gpio.PinNumberingScheme.Board ); if(!controller.IsPinOpen( index )) { controller.OpenPin( index ); controller.SetPinMode( index, System.Device.Gpio.PinMode.Output ); } Console.WriteLine( "請選擇控制模式?輸入1是間隔1秒交替變化,輸入2是間隔10秒交替變化,輸入3是手動控制變化" ); int mode = int.Parse( Console.ReadLine( ) ); if (mode == 1 || mode == 2) { while (true) { Console.WriteLine( "正在寫入True值" ); controller.Write( index, System.Device.Gpio.PinValue.High ); Thread.Sleep( mode == 1 ? 1000 : 10000 ); Console.WriteLine( "正在寫入False值" ); controller.Write( index, System.Device.Gpio.PinValue.Low ); Thread.Sleep( mode == 1 ? 1000 : 10000 ); } } else { while (true) { Console.WriteLine( "你輸入你接下來要寫入的值,0代表低電平,1代表高電平" ); int value = int.Parse( Console.ReadLine( ) ); controller.Write( index, value == 1 ? System.Device.Gpio.PinValue.High : System.Device.Gpio.PinValue.Low ); } } }
然后就是發布了,直接發布獨立的版本,雖然帶了很多的環境,但是省事。
然后把文件都拷貝到樹莓派里面
通過萬用表的測試發現,樹莓派的GPIO針腳的輸出為 3.3V 40 ma,驅動能力非常弱。感謝支持。