W80X Arduino LED渐变

发布于 2023-07-13 16:58:08
这个例子演示了如何使用analogWrite()函数来渐变LED。AnalogWrite使用脉冲宽度调制(PWM)来快速打开和关闭数字引脚,在打开和关闭之间具有不同的比率,以实现渐变效果。

必需品

  1. 1 x 面包板
  2. 1 x W801板
  3. 1 x LED灯(或者你可以不使用,开发板上有)
  4. 1 × 330Ω 电阻
  5. 3 × 跳线

接线图

根据电路图连接面包板上的元件,如下图所示。
LED渐变.jpg

草图

在计算机上打开Arduino IDE软件。使用Arduino语言对电路进行编码和控制。点击“新建”打开新建草图文件。这里不讨论具体的配置。
open.jpg

代码

/*
   Fade
   This example shows how to fade an LED on pin PB24 using the analogWrite() function.
   The analogWrite() function uses PWM, so if you want to change the pin you're using,
   besure to use another PWM capable pin.For example,PB25,PB26,PB20,etc. 
*/
int led = PB25; // 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 PB25 to be an output:
   pinMode(led, PWM_OUT);
}
   // the loop routine runs over and over again forever:

void loop()
{
   // set the brightness of pin PB25:
   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 3 milliseconds to see the dimming effect
   delay(30);
}

代码导入步骤

首先单击Verify验证代码是否正确

1eb55992e618394f516378dc48b779b3.jpg

接着单击Upload上传代码弹出保存框,在相应的位置编辑文件名并保存即可

27f363e694f6a241818561e7e1236ab9.jpg
16892212723385.jpg

也可以如下步骤

烧录步骤1_副本.jpg

最后等待上传需要十几秒的时间,显示以下即表示成功

6f1f1a696c4d4368c9238972d20e5c5b.jpg

代码解释

pinMode(led, PWM_OUT);

如果您想使用PWM端口,请使用PWM_OUTPUT或PWM_INPUT。在将引脚PB25声明为LED引脚之后,在代码的setup()函数中没有任何操作。

analogWrite(led, brightness);

您将在代码的主循环中使用的analogWrite()函数将接受两个参数:一个用于告诉函数要写入哪个引脚,另一个用于指示要写入的PWM值。为了使LED逐渐关闭和打开,逐渐将PWM值从0(一直关闭)增加到255(一直打开),然后返回到0以完成循环。
在上面给出的草图中,PWM值是使用一个称为brightness的变量来设置的。每次通过循环时,它都会增加变量fadeAmount的值。
如果brightness处于其值的任一极值(0或255),则fadeAmount变为负值。换句话说,如果fadeAmount是5,那么它被设置为-5。如果它是-5,那么它被设置为5。下一次通过循环,这个改变也将导致brightness改变方向。
analogWrite()可以非常快速地改变PWM值,因此草图结束时的delay控制了渐变的速度。尝试改变delay的值,看看它如何改变渐变效果。

结果

你可以看到你的LED逐渐变化。

0 条评论

发布
问题