Arduino项目02.Arduino 渐变LED

这个例子演示了使用analogWrite()函数来渐变LED的功能。AnalogWrite使用脉冲宽度调制(PWM),以开和关之间的不同比率非常快速地打开和关闭数字引脚,以产生渐变效应。

必需的组件

你将需要以下组件:

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

程序

按照电路图连接面包板上的组件,如下图所示。

电路图

注意 − 要了解LED的极性,请仔细查看。两个腿中较短的,朝向灯泡的平坦边缘表示负极端子。

LED

像电阻器这样的组件需要将其端子弯曲成90°角,以便恰当的适配面包板插座。你也可以将端子切短。

电阻

草图

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

Sketch

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值使用称为brightness的变量设置。每次通过循环时,它增加变量fadeAmount的值。

如果brightness处于其值的任一极值(0或255),则fadeAmount变为负值。换句话说,如果fadeAmount是5,那么它被设置为-5。如果它是-5,那么它被设置为5。下一次通过循环,这个改变也将导致brightness改变方向。

analogWrite()可以非常快速地改变PWM值,因此草图结束时的delay控制了渐变的速度。尝试改变delay的值,看看它如何改变渐变效果。

结果

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

发布者:suiyublg,转转请注明出处:https://huibian.net/1402-2/

(0)
suiyublg的头像suiyublg
上一篇 2017年4月12日 16:42
下一篇 2017年4月14日 16:45

相关推荐

  • Arduino传感器02.Arduino 温度传感器

    温度传感器LM35系列是精密集成电路温度器件,输出电压与摄氏温度成线性比例。 LM35器件优于以开尔文校准的线性温度传感器,因为用户不需要从输出中减去大的恒定电压以获得便利的摄氏缩放。LM35器件不需要任何外部校准或调整,即可在室温下提供±1/4°C的典型精度,在-55°C至150°C的温度范围内提供±3°C的典型精度。 技术规格 必需的组件 你将需要以下组…

    2017年4月21日
    5600
  • Arduino教程28.Arduino 嵌套循环

    C语言允许你在另一个循环内使用一个循环。下面的例子说明了这个概念。 嵌套循环语句语法 for ( initialize ;control; increment or decrement) { // statement block for ( initialize ;control; increment or decrement) { // statement…

    2017年3月25日
    5200
  • Arduino教程09.Arduino 循环

    编程语言提供了各种控制结构,允许更复杂的执行路径。 循环语句允许我们多次执行一个语句或一组语句,以下是大多数编程语言中循环语句的一般形式: C语言提供以下类型的循环来处理循环需求。 序号 循环及描述 1 while循环while循环将会连续、无限循环,直到括号()内的表达式变为false。必须用一些东西改变被测试的变量,否则while循环永远不会退出。 2 …

    2017年3月25日
    11303
  • Arduino教程30.Arduino delay()函数

    delay()函数的工作方式非常简单。它接受单个整数(或数字)参数。此数字表示时间(以毫秒为单位)。当程序遇到这个函数时,应该等到下一行代码。然而,问题是,delay()函数并不是让程序等待的好方法,因为它被称为阻塞(blocking)函数。 delay()函数语法 delay (ms) ; 其中, ms 是以毫秒为单位暂停的时间(无符号…

    2017年3月29日
    5600
  • Arduino项目06.Arduino 键盘消息

    在此示例中,当按下按钮时,文本字符串作为键盘输入发送到计算机。字符串报告按钮被按下的次数。一旦你完成了Leonardo版的程序化和接线,打开你最喜欢的文本编辑器来查看结果。 警告 – 当你使用 Keyboard.print()命令时,Arduino将接管你的计算机键盘。为确保在使用此功能运行草图时不会失去对计算机的控制,请在调…

    2017年4月17日
    7500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!