这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ArduinoUNO:用PWM控制灯光的亮度

共1条 1/1 1 跳转至

ArduinoUNO:用PWM控制灯光的亮度

专家
2023-04-30 12:53:18     打赏

Arduino UNO开发板提供了PWM功能,使用PWM控制LED,可以实现类似于调光台灯那样的功能。搭建的电路如下:

Arduino PWM.png限流电阻选择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变化的过程而添加的延时,否则,这个变化的过程就太快了。

编译下载程序,看看结果吧。




关键词: 菜鸟学单片机     Arduino     PWM    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]