2

我有一个 Windows IOT Core 应用程序,它将输出写入 GPIO 引脚,我需要在三个引脚上设置可变电压以将 RGB 灯设置为任何颜色。

问题是我只能将引脚设置为高值或低值,两者之间没有:

private void SetupLeds()
{
    var gpio = GpioController.GetDefault();

    _redLED = gpio.OpenPin(18);
    _redLED.SetDriveMode(GpioPinDriveMode.Output);

    _greenLED = gpio.OpenPin(23);
    _greenLED.SetDriveMode(GpioPinDriveMode.Output);

    _blueLED = gpio.OpenPin(24);
    _blueLED.SetDriveMode(GpioPinDriveMode.Output);

}    

public void Yellow()
{
    _redLED.Write(GpioPinValue.High);
    _greenLED.Write(GpioPinValue.High);
    _blueLED.Write(GpioPinValue.Low);
}

public void Red()
{
    _redLED.Write(GpioPinValue.High);
    _greenLED.Write(GpioPinValue.Low);
    _blueLED.Write(GpioPinValue.Low);
}

如果有人能指出我正确的方向,以便能够在引脚上写入 1 到 0 之间的值,我将不胜感激。

也许对于这个版本的 Core IOT 来说甚至是不可能的。

更新

感谢 leppie 的评论,我现在意识到我当然需要使用 PWM。

所以现在的问题是有人知道如何在 Windows Core IOT 上使用 PWM 吗?

4

2 回答 2

1

目前不支持 PWM。我期待它会在以后的版本中出现。与此同时,您可以将您的 RPi2 连接到 Arduino。您可以访问 Arduino 上的 PWM。请参阅文件 ControlPage.xaml.cs 中的此示例

马克·拉德伯恩 [MSFT]

于 2015-06-24T18:28:37.563 回答
1

我们在iot-devices 项目中添加了对软件 PWM 和硬件 PWM 的 C# 支持。您还可以参考这个使用 Windows IoT Core 和 PWM 驱动步进电机的 C++ 示例

于 2015-11-30T22:41:04.923 回答