如何利用 CSharp 控制 LED 灯

上篇介绍了如何用树莓派搭建一个简单电路后,本文将对电路进行一些升级,让它可以通过代码控制 LED 灯的开关。


准备环境

软件

Windows 10 (非 IoT),作为开发的主机,(未曾尝试过在装有 win10 的虚拟机里进行调试)

Visual Studio 2015 Commuity RC


硬件

一块树莓派

5V电源线

一个 GPIO 扩展板及 40p 的排线(可选)

一个面包板

一只电阻(250~1K 欧姆)

一只发光二极管 (工作电流在 20 mA 左右)

若干导线

刷入了 win10 IoT 系统的 SD 卡

一根网线(用于远程调试)

(绿色表示相对于上一篇文章所添加的设备)

连接电路

用代码控制 LED 灯的原理并不复杂,只要能够控制电源的输出就能控制 LED 灯的开关。为此,我将放弃使用 针脚 4 作为供电接口,而使用 针脚 29 (即 GPIO 5)。只要让该针脚输出高电平(电压 3.3v)即可以点亮 LED,而输出低电平则可以熄灭 LED。

为方便大家参考,我把 GPIO 的针脚图再粘一下:

图片来自Build your first IoT Core Application


改造后的电路图如下所示:(为了线路整洁,使用 针脚 34 替代 针脚 6 作为接地的针脚)

连接示意图


编写代码

控制 LED 灯的逻辑很简单,总共不超过 10 行代码。


新建 Background Appplication 项目

因为我们的这个应用不需要 UI,所以直接创建一个后台项目。


编写控制逻辑

    public sealed class StartupTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            // 
            // TODO: Insert code to start one or more asynchronous methods 
            //

            GpioController controller = GpioController.GetDefault();
            GpioPin pin = controller.OpenPin(5);
            pin.SetDriveMode(GpioPinDriveMode.Output);
            GpioPinValue pinValue = GpioPinValue.Low;

            while (true)
            {
                pinValue = pinValue == GpioPinValue.High ? GpioPinValue.Low : GpioPinValue.High;
                pin.Write(pinValue);
                Task.Delay(500).Wait();
            }
        }
    }

首先获取一个 Controller,通过 Controller.OpenPin 来获取对某一针脚的引用。我们需要的是 GPIO 5,所以这里传入参数 5。

这个针脚的目的是为了对 LED 进行供电,因此它是作为输出而存在,利用 SetDriveMode 把该针脚的作用定义为 output。

根据上一节中的分析知道,让 LED 灯亮则输出高电平,否则输出低电平。而设置高/低电平,可以通过调用 GpioPin.Write 进行输出。GpioPinValue.Low 即低电平,而 GpioPinValue.High 则是高电平。

while 循环中的逻辑的目的就是每隔半秒高低交替下,从而让 LED 灯不停的一闪一灭。


调试代码

要想让代码能部署到树莓派上,我们必须做一些设置。

1、确认树莓派是否已经连接到本地局域网中,如果已经联上,则输入 IP 即可以通过网页进行管理,这在 《访问 Win10 IoT》中已经介绍过了。

2、因为树莓派是基于 ARM 而非 X86 的,因此选择 ARM 作为目标平台。

3、选择调试的环境为 “远程机器”,而非本机。

4、F5 启动调试

   第一次调试,会弹出对话框来要求你提供远程机器的信息,主要包含 IP 地址和授权方式。这里选择你树莓派的地址,验证方式选择 None,否则无法部署到 Win10 IoT 上。

经过第一次设置后,之后就会默认使用该配置进行调试,如果想要修改地址,可以通过项目属性进行修改。


设置完成后,VS 会开始进行编译和部署,当部署成功后,就会开始运行程序,你就会看到你的 LED 灯开始有规律的闪烁了。


下一篇文章,我会介绍下如何通过手机或电脑来控制 LED 灯的亮灭。

文章索引

[隐 藏]

本站采用知识共享署名 3.0 中国大陆许可协议进行许可。 ©2014 Charley Box | 关于本站 | 浙ICP备13014059号