脈波寬度調整 PWM(Pulse-width Modulation) 可用來調整輸出端的平均電壓,它的原理是藉由調整脈波的工作周期,造成平均電壓值的變化,例如圖一的脈波的高電位約占整個周期的 10%,圖二的高電位佔周期的50%,圖三的高電位佔周期的90%,因此圖三的平均電壓較高,若接LED也會比較亮。
藉由調整duty cycle 的比例值,就可控制電壓高低,也就是LED的亮度
例如下列電路及程式,LED會逐漸變亮,瞬間變暗,不斷重複
//測試 PWM 控制 LED
//LED正極接 pin 6,負極接地
public class Program
{
static PWM red = new PWM(Pins.GPIO_PIN_D6);
public static void Main()
{
// write your code here
int Intensity = 0;
while (true)
{
Intensity = (Intensity + 1) % 100; //遞增Intensity值,若超過99自動歸0
red.SetDutyCycle((uint)Intensity); //設定PWM脈波寬度比例 0~99
Thread.Sleep(1);
}
}
}
沒有留言:
張貼留言