Learning Examples | Foundations | Hacking | Links
示例 > 模拟 I/O
通过让 LED 渐变亮度,演示 analogWrite() 函数的使用。 AnalogWrite 使用 脉冲宽度调制 (PWM),让一个数字引脚迅速开关来实现渐变效果。
将 LED 的 阳极 (长管脚),通过一只 220 欧姆电阻与 Arduino 的数字输出 9 连接。将 LED 的 阴极 (短管脚) 接地。
点击图片放大
点击图片放大
图片绘制采用 Fritzing. 更多的电路示例,请参考 Fritzing 项目页面
setup()
把管脚 9 定义为 LED 输出管脚。
在主循环中使用到的 analogWrite()
函数需要两个参数:一个表示你要往哪个管脚输出,另一个表示输出的 PWM 值。
为了让 LED 渐变亮度,我们逐渐增加 PWM 值,从 0(完全关闭)一直到 255(完全点亮),然后再逐渐变为 0,完成一个循环。在下面的程序中,PWM 值由一个叫做 brightness
的变量确定。每次循环执行的时候,它的值的变化由变量 fadeAmount
决定。
如果 brightness
达到极值(0 或 255),那么 fadeAmount
就应该变为它的相反数。换句话说,如果 fadeAmount
是 5,那么它应该被设为 -5。 如果它是 -5,那么应该被设为 5。在下一次循环执行的时候,这个改变会导致 brightness
向另一个方向变化。
由于 analogWrite()
能以非常快的速度改变 PWM 值,所以我们在程序的末尾用一个延时来控制渐变的速度。试试改变延时的大小,看看它对程序有什么影响。