首页 > 其他分享 >无涯教程-Arduino - 渐变LED

无涯教程-Arduino - 渐变LED

时间:2023-10-19 21:31:41浏览次数:41  
标签:LED analogWrite 引脚 brightness 无涯 Arduino fadeAmount PWM

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

所需组件

您将需要以下组件-

  • 1×Breadboard
  • 1×Arduino Uno R3
  • 1个LED
  • 1×330Ω电阻
  • 2×跳线

电路图

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

Components on Breadboard

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

LED

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

Resistors

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; //LED 连接到的 PWM 引脚
int brightness=0; //LED有多亮
int fadeAmount=5; //LED 淡化多少点
//当您按下重置时,设置例程运行一次:

void setup() {
   //将引脚 9 声明为输出:
   pinMode(led, OUTPUT);
}

//循环例程永远一遍又一遍地运行:

void loop() {
   //设置引脚 9 的亮度:
   analogWrite(led, brightness);
   //通过循环更改下次的亮度:
   brightness=brightness + fadeAmount;
   //在淡入淡出的末端反转淡入淡出的方向:
   if (brightness == 0 || brightness == 255) {
      fadeAmount=-fadeAmount ;
   }
   //等待 30 毫秒查看调光效果
   delay(300);
}

注意代码

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

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

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

输出结果

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

参考链接

https://www.learnfk.com/arduino/arduino-fading-led.html

标签:LED,analogWrite,引脚,brightness,无涯,Arduino,fadeAmount,PWM
From: https://blog.51cto.com/u_14033984/7942439

相关文章

  • 无涯教程-Arduino - 闪烁的LED
    LED是小巧而函数强大的灯,可用于许多不同的应用中,首先,我们将使LED闪烁(微控制器的HelloLearnfk),就像打开和关闭灯一样简单,创建这个重要的基准将为您进行更复杂的实验打下坚实的基础。所需组件您将需要以下组件-1×面包板1×ArduinoUnoR31个LED1×330Ω电阻2×跳线......
  • 无涯教程-Arduino - 外围串口
    串行外围设备接口(SPI)总线是用于串行通信的系统,它最多使用四根导线,通常为三根,一根导线用于数据接收,一根导线用于数据发送,一根导线用于同步,另一根导线用于选择要与之通信的设备,这是全双工连接,这意味着将同时发送和接收数据,最大波特率高于I2C通信系统中的波特率。BoardSPIPins......
  • 无涯教程-Arduino - 集成电路
    集成电路间(I2C)是用于在微控制器和新一代专用集成电路之间进行串行数据交换的系统,当它们之间的距离很短时使用。通过两个导体创建连接。一个用于数据传输,另一个用于同步(时钟信号)。ArduinoI2C我们有两种模式-主代码和从代码-使用I2C连接两个Arduino板。他们是-主发送器/从......
  • 无涯教程-Arduino - 函数声明
    函数允许按代码段构造程序以执行单独的任务,创建函数的典型情况是当一个程序需要在一个程序中多次执行相同的操作时。Arduinosketch或程序中有两个必需的函数,即setup()和loop(),必须在这两个函数的括号之外创建其他函数。定义函数的最常见语法是-函数声明我们可以用两种不同......
  • [Mac] 安装paddle-pipelines出现 ERROR: Failed building wheel for lmdb
    今天在mac换了新系统,然后重新安装paddle-piplines的时候出现了下面的问题:xcrun:error:invalidactivedeveloperpath(/Library/Developer/CommandLineTools),missingxcrunat:/Library/Developer/CommandLineTools/usr/bin/xcrunerror:command'/usr/bin/clang'fai......
  • 想让你的代码简洁,试试这个SimpleDateFormat类高深用法
    本文分享自华为云社区《从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!》,作者:bug菌。环境说明:Windows10+IntelliJIDEA2021.3.2+Jdk1.8@[toc]前言日期时间在开发中是非常常见的需求,尤其是在处理与时间相关的业务逻辑时,我们需要对日期时间进行格式化、比较......
  • Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:res
    Failedtoexecutegoalorg.apache.maven.plugins:maven-resources-plugin:3.2.0:resources 一、问题背景在SpringBoot工程编译过程中,出现报错信息:“Failedtoexecutegoalorg.apache.maven.plugins:maven-resources-plugin:3.2.0:resources”。 效果如下: 二、解......
  • 不修改Read/Write Enabled,Texture.GetPixels,Mesh.triangles
    ###原理:将Texture拷贝一份出来然后读取///<summary>///不通过设置Read/WriteEnabled,直接克隆一份可读的Texture2D///</summary>///<paramname="source"></param>///<returns></returns>publicstaticTexture2DCloneTexture......
  • 无涯教程-Arduino - 程序结构
    在本章中,我们将深入研究Arduino程序的结构,并学习Arduino世界中使用的更多新术语,Arduino软件是开源的,Java环境的源代码在GPL下发布,而C/C++微控制器库在LGPL下。Structure结构Arduino程序可分为三个主要部分:结构,值(变量和常量)和函数,在本教程中,我们将了解Arduino软件程序,以及......
  • 论文阅读:Knowledge Distillation via the Target-aware Transformer
    摘要Knowledgedistillationbecomesadefactostandardtoimprovetheperformanceofsmallneuralnetworks.知识蒸馏成为提高小型神经网络性能的事实上的标准。Mostofthepreviousworksproposetoregresstherepresentationalfeaturesfromtheteachertothes......