2011年12月29日 星期四

Netduino--PWM電子調光器

脈波寬度調整 PWM(Pulse-width Modulation) 可用來調整輸出端的平均電壓,它的原理是藉由調整脈波的工作周期,造成平均電壓值的變化,例如圖一的脈波的高電位約占整個周期的 10%,圖二的高電位佔周期的50%,圖三的高電位佔周期的90%,因此圖三的平均電壓較高,若接LED也會比較亮。

image

image

image

藉由調整duty cycle 的比例值,就可控制電壓高低,也就是LED的亮度
例如下列電路及程式,LED會逐漸變亮,瞬間變暗,不斷重複
image

//測試 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);
            }
        }
    }

沒有留言:

張貼留言