控制任务和要求
通过程序控制LED的亮度按照要求变化
电路设计
程序设计
1 int bright_number = 0; //此变量用来表示LED的亮度 2 int bright_gap = 5; //此变量用来表亮度变化的增减量 3 int LED_pin = 9; //LED引脚,须用模拟口 4 5 void setup() 6 { 7 pinMode(LED_pin, OUTPUT); // 设置LED引脚为输出模式: 8 } 9 10 void loop() 11 { 12 analogWrite(LED_pin, bright_number); //亮度写出 13 delay(1000); //延时1000毫秒 14 bright_number = bright_number + bright_gap; //改变亮度 15 if (bright_number == 0 || bright_number == 255) 16 { 17 bright_gap = - bright_gap ; //逐渐变亮与逐渐变暗之间切换 18 } 19 delay(2000); //延时2000毫秒 20 }
工作原理
analogWrite()是通过应用PWM技术输出模拟电压的函数。PWM(脉冲宽度调制)的工作原理是通过调节脉冲(频率为500Hz,周期为2毫秒)高电平宽度的占空比,由直流斩波得到一个平均后的模拟电压。通过设置analogWrite(number)中number的值(0-255),得到输出电压值0 -- 5V,输出电压=5V*占空比,如下图所示。
运行效果
每隔1秒逐渐变亮,最亮时延时2秒,再每隔1秒逐渐变暗,自动循环。