PWM 控制LED亮度

写了一个简单的程序,使用Arduino Uno上 PWN Pin 来控制一个LED的亮度。

代码方面是从串口接收信息,“[”减小,“]”增加

int  n=100;
void setup()
{
    Serial.begin(9600);
    pinMode(6,OUTPUT);      //该端口需要选择有#号标识的数字口
}

void loop()
{
  char  c;

    while (Serial.available() > 0)  
    {
        c=Serial.read();
        if (']'==c) 
          {
            n=n+5;
          }
        if ('['==c) 
          {
            n=n-5;
          }
       if (n>255) {n=0;}
       if (n<0) {n=255;}   
       analogWrite(6,n); 
       Serial.println(n);

    }
}

电路连接仿照【参考1】.刚开始使用220欧的电阻,发现亮度变化不均匀,在100以上之后看不出来亮度有多少变化,之后,改成 2.4K  电阻(2个1.2K串联),表现更好。

PWMLED1 PWMLED2

 

参考:

1.http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1054&highlight=pwm Arduino入门教程--第五课--按钮PWM控制LED亮度

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注