Arduino UNO开发板提供了PWM功能,使用PWM控制LED,可以实现类似于调光台灯那样的功能。搭建的电路如下:
限流电阻选择220欧姆的即可。
代码如下:
const int LED = 9; // 使用编号9(有PWM功能)为LED输出控制 int i = 0; // 声明、初始化变量 void setup() { pinMode(LED, OUTPUT); // 设置LED用管脚为输出 } void loop(){ for (i = 0; i < 255; i++) { analogWrite(LED, i); // 改变LED亮度 delay(10); // 延时10ms } for (i = 255; i > 0; i--) { analogWrite(LED, i); // 改变LED亮度 delay(10); // Wait 10ms } }
analogWrite() 会改变LED的亮度。函数声明为:analogWrite(pin,value),pin为引脚编号,value的取值从0到255,0时关闭占空比,255时为最大占空比,如果你接5v输出,0就是5v,255就是为0v。
另一个重要的部分是for循环:这个循环会不断地执行analogWrite() 和delay() 函数,不过每次都通过变量i在函数中使用不同的参数值。
第一个for循环开始时变量i的值为0,然后逐渐增大到255,此时LED的亮度最大。
第二个for循环开始时变量i的值为255,然后逐渐减小到0,此时LED完全熄灭。
delay() 函数只是为了让我们能够看清LED变化的过程而添加的延时,否则,这个变化的过程就太快了。
编译下载程序,看看结果吧。