1个LED的亮度自动控制

Posted myautomation

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1个LED的亮度自动控制相关的知识,希望对你有一定的参考价值。

控制任务和要求

通过程序控制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秒逐渐变暗,自动循环。

 

以上是关于1个LED的亮度自动控制的主要内容,如果未能解决你的问题,请参考以下文章

ESP 保姆级教程 疯狂点灯篇 —— 案例:ESP8266 + LED + 按键 + PWM调整亮度 + Web页面控制(Web页面控制开关LED灯亮度)

ESP 保姆级教程 疯狂点灯篇 —— 案例:ESP8266 + LED + 按键 + PWM调整亮度(模拟按键控制灯亮度)

Arduino ESP32 Web Service PWM控制led亮度

arduino电位器调整led灯颜色

Arduino ESP8266 Web Service PWM控制led亮度

基于stm32的串口/蓝牙控制LED灯的开关和亮度(超基础)