根据电路图连接面包板上的元件,如下图所示。
在计算机上打开Arduino IDE软件。使用Arduino语言对电路进行编码和控制。点击“新建”打开新建草图文件。这里不讨论具体的配置。
/*
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);
}
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逐渐变化。