📜  Arduino-褪色LED

📅  最后修改于: 2020-11-05 03:39:09             🧑  作者: Mango


本示例演示了如何在LED熄灭时使用AnalogWrite()函数。 AnalogWrite使用脉冲宽度调制(PWM),以开/关之间的不同比率非常快速地打开和关闭数字引脚,以产生淡入淡出的效果。

所需组件

您将需要以下组件-

  • 1×面包板
  • 1×Arduino Uno R3
  • 1个LED
  • 1×330Ω电阻
  • 2×跳线

程序

遵循电路图,并如下图所示将面包板上的组件连接起来。

面包板上的组件

注意-要找出LED的极性,请仔细观察。朝向灯泡平坦边缘的两条腿中的较短者表示负极端子。

发光二极管

电阻等组件需要将其端子弯曲成90°角,以正确安装面包板插座。您也可以缩短端子。

电阻器

草图

打开计算机上的Arduino IDE软件。使用Arduino语言进行编码将控制您的电路。通过单击“新建”打开新的草图文件。

草图

Arduino代码

/*
   Fade
   This example shows how to fade an LED on pin 9 using the analogWrite() function.

   The analogWrite() function uses PWM, so if you want to change the pin you're using, be
   sure to use another PWM capable pin. On most Arduino, the PWM pins are identified with
   a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
*/

int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:

void setup() {
   // declare pin 9 to be an output:
   pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:

void loop() {
   // set the brightness of pin 9:
   analogWrite(led, brightness);
   // change the brightness for next time through the loop:
   brightness = brightness + fadeAmount;
   // reverse the direction of the fading at the ends of the fade:
   if (brightness == 0 || brightness == 255) {
      fadeAmount = -fadeAmount ;
   }
   // wait for 30 milliseconds to see the dimming effect
   delay(300);
}

注意代码

在将引脚9声明为您的LED引脚之后,您的代码的setup()函数无需执行任何操作。您将在代码的主循环中使用的analogWrite()函数需要两个参数:一个,告诉函数要写入哪个引脚,另一个指示要写入哪个PWM值。

为了使LED熄灭并点亮,请逐渐将PWM值从0(一直关闭)增加到255(一直打开),然后再返回0,以完成循环。在上面给出的草图中,使用称为亮度的变量设置PWM值。每次循环时,它都会增加变量fadeAmount的值。

如果亮度达到其最大值(0或255),则fadeAmount更改为负值。换句话说,如果fadeAmount为5,则将其设置为-5。如果为-5,则将其设置为5。下一次通过循环时,此更改也会导致亮度也更改方向。

AnalogWrite()可以非常快速地更改PWM值,因此草图末尾的延迟控制淡入速度。尝试更改延迟的值,看看它如何改变衰落效果。

结果

您应该看到LED亮度逐渐变化。