如何使用.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,驱动能力非常弱。感谢支持。