Loading...

Learning   Examples | Foundations | Hacking | Links

示例 > 模拟 I/O

渐变

通过模拟输出 (脉冲宽度调制(PWM)) 让 LED 的亮度渐变。 PWM 是一种利用数字输出的快速开关来达到模拟输出效果的技巧。

电路

将一只 LED 通过 220 欧姆电阻和数字输出 9 连接。

点击图片放大

原理图

点击图片放大

图片绘制采用 Fritzing. 更多的电路示例,请参考 Fritzing 项目页面

代码

/*
 渐变
 
 这个示例演示了怎样使用 analogWrite() 函数来控制 LED 灯渐变亮度
 
 电路:
 * LED 通过数字输出 9 接地。
 
 创建日期:1 Nov 2008
 By David A. Mellis
 修改日期: 30 Aug 2011
 By Tom Igoe
 
 http://arduino.cc/en/Tutorial/Fading
 
 此示例代码完全公开
 
 */



int ledPin = 9;    // LED 连接到数字输出 9

void setup()  {
  // 不需要初始化
}

void loop()  {
  // 从 min 到 max 逐渐变亮,每次增加 5 个单位:
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    // 设置亮度(范围从 0 到 255):
    analogWrite(ledPin, fadeValue);        
    // 等待 30 毫秒以便观察效果
    delay(30);                            
  }

  // 从 max 到 min 逐渐变暗,每次减少 5 个单位:
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
    // 设置亮度(范围从 0 到 255):
    analogWrite(ledPin, fadeValue);        
    // 等待 30 毫秒以便观察效果
    delay(30);                            
  }
}

请参阅