LED亮度渐变(Fade)
本示例展示了使用analogWrite() 来实现LED亮度的渐变。AnalogWrite采用脉冲宽度调制(PWM),以开关之间的不同比例快速打开和关闭一个数字引脚,来打造出渐变效果。
需要的硬件
- Arduino或者Genuino开发板
- LED
- 220欧电阻
- 导线
- 实验电路板
效果图
核心代码如下
int led = 9; // LED所连接的PWM引脚
int brightness = 0; // LED亮度
int fadeAmount = 5; // LED灯淡化值
// 按下rest,程序执行:
void setup() {
//声明pin9作为输出
pinMode(led, OUTPUT);
}
// 循环
void loop() {
// 设置pin9亮度
analogWrite(led, brightness);
//通过循环改变下一次的亮度
brightness = brightness + fadeAmount;
// 在淡入结束时反转淡入的方向:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// 等待三十毫秒才能看效果
delay(30);
}
个人理解
其中的引脚和零度的代码是十分重要的,同时,在淡入结束时反转淡入的方向是本项目的重点diamante,因为这可以理解为手机的呼吸灯。