在我上次介绍Arduino的视频之后,有些人评论说,你们需要一个Arduino工作原理的例子,这个例子非常简单易懂。在这个视频中,我们要做的是最简单的项目。我们要用LED灯闪烁了!

Arduino: LED视频闪烁

我们已经就这个主题制作了详细的教程视频,我们认为你可能会喜欢!

Arduino上的LED闪烁

我们会在Arduino的PIN 12上安装一个LED,让它每一秒闪烁一次。我们甚至不打算在这个项目中使用面包板。我们只需要一个LED,一个220欧姆电阻和6行代码。这两条线的最后一条只是LED状态改变后的重复。

两个快速的基础知识

什么是LED?LED是发光二极管。二极管是限制电流流向一个方向的电子元件。LED只是一个发光二极管,但同样的规则适用。这就是为什么与普通灯泡不同,LED有正极和负极引线(更准确地说是阳极(+)和阴极(-)引线)。

您可以通过两种不同的方式来区分LED上的哪个支脚是哪个支脚。第一种方式是LED的阴极(-)侧在塑料外壳上有一个平坦的凹口,它不会完全圆。第二种方式是阴极(-)引线总是比阳极(+)引线短。

为了限制流过LED并烧坏的电流量,您需要在其上添加一个电阻器来保护它。在我们的例子中,这将是一个220欧姆的电阻器。如果不使用电阻器,将导致您的LED出现故障,无论是立即还是短时间。

在网上的许多Arduino教程中,他们会展示如何在没有电阻器的情况下连接电路针脚13。他们将声称针脚13有一个集成电阻器。这是事实,但他们的假设是错误的。电阻器与针脚13和13并联仅保护集成的车载LED。如果你按照这些教程操作,最终会烧坏LED,甚至更糟的是烧坏ATmega微控制器。不要这样做。使用电阻器!

本项目零件清单

如果您想执行此项目,我们为您创建了一个简单的零件列表,供您开始:

数量 部分/链接
1X Arduino Uno
1X USB B型电缆
1X 领导的工具包
1X 电阻套件(220欧姆)
1X 无焊试验板
1X 跨接导线
买一个极客酒吧!

将LED连接到Arduino(没有面包板)

为了使这个闪烁LED的项目尽可能简单易懂,我们将完全跳过面包板。我们要做的第一件事就是把电阻器的一条腿绕在LED的阳极(或正极)导线上。阳极是较长的引线。

现在我们已经完成了,我们将把LED的阴极(或负极)引线插入Arduino接地引脚。阴极是较短的引线。

现在,把电阻器的另一个引线插入PIN 12。实际上,你可以使用Arduino上的任何数字I/O引脚来实现这一点,在这个视频之后,你应该尝试移动它,并只是改变代码中的引脚号码!

这就是这个项目硬件方面的全部内容。

相关的:Arduino传感器列表

将LED连接到Arduino(带试验板)

如果你想使用面包板来连接LED,它只是稍微复杂一点(勉强)。以下是如何做到这一点。

  • 阿杜伊诺引脚12至220欧姆电阻
  • 阿杜伊诺GND试验板GND
  • 发光二极管阳极(+)至220欧姆电阻
  • 发光二极管阴极(-)试验板GND

为Arduino编写代码

现在让我们转到软件方面。打开ArduinoIDE。您将看到一个void设置和一个void循环。这是Arduino上LED闪烁代码的两个主要功能。设置功能是您配置内容的地方。循环函数就是它听起来的样子。您在这里输入的所有代码都将无限期地反复执行(或者直到Arduino失去电源)。

在setup函数上面,让我们添加一行代码:

int LED_引脚=12;

这只是定义了一个整数变量,使我们的代码更容易理解。在设置功能中,我们需要添加另一行:

引脚模式(LED_引脚,输出);

这告诉Atmega我们将使用引脚12输出5V。在回路部分,我们将再添加四条线路,以打开LED,等待一秒钟,然后关闭:

数字写入(LED_引脚,高);延迟(1000);数字写入(LED_引脚,低);延迟(1000);

完整的LED眨眼草图

然后把它们放在一起,你会得到以下完整的Arduino LED blink代码:

/* ARDUINO BLINK AN LED TUTORIAL By: TheGeekPub.com更多ARDUINO教程://www.ergcommercial.com/arduino-tutorials/ */ int LED_PIN = 12;void setup() {pinMode(LED_PIN, OUTPUT);} void loop() {digitalWrite(LED_PIN, HIGH);延迟(1000);digitalWrite (LED_PIN、低);延迟(1000);}

现在使用文件保存代码,保存并命名。我选择了BlinkLED.ino。

完成Arduino闪烁LED项目

要为Arduino编程使LED闪烁,只需单击左上角的箭头按钮,您的代码将编译并上传到ATmega微控制器。在一两秒钟内,您的LED应该开始闪烁。

这就是Arduino平台的力量。它简单得令人难以置信,易于理解。

在不使用delay()函数的情况下闪烁LED

正如您将在以后的教程中了解到的,delay()函数将停止Arduino上所有正在运行的代码,直到它完成其延迟。这对于许多程序来说都不是最优的。例如,如果Arduino正在执行delay(),您可能会错过一次按钮按下函数!以下代码将允许您在需要时闪烁LED,而无需使用delay()函数。

//常量不会改变。这里用于设置引脚编号:const int LED_PIN = 12;// LED引脚的数量//变量将改变:int ledState = LOW;// ledState用来设置LED unsigned long previousMillis = 0;const long interval = 1000; //将存储上次LED被更新的时间void setup(){//设置数字引脚为输出:pinMode(LED_PIN, output);} void loop(){//放置需要一直运行的代码。//查看是否需要闪烁LED;unsigned long currentMillis = millis();if (currentMillis - previousMillis >= interval){//保存上次LED闪烁的时间previousMillis = currentMillis; // if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } // set the LED with the ledState of the variable: digitalWrite(LED_PIN, ledState); } }

升级:Arduino骑士代码

如果你想要更进一步,你只需要6个led和6个220欧姆电阻。连接电阻和led引脚7至12,并上传以下代码到您的Arduino。如果你想了解更多的信息和更多的例子,请查看我们的阿杜伊诺骑士和赛昂人之眼篇文章。

int pinArray[]={12,11,10,9,8,7};整数计数=0;int定时器=10;void setup(){for(count=0;count<;6;count++){pinMode(pinArray[count],OUTPUT);}}}void loop(){for(count=0;count<;5;count++){digitalWrite(pinArray[count],HIGH);delay(timer)(pinArray[count+1],HIGH);delay(timer);digitalWrite(pinArray[count],LOW);delay(timer*2)}for(count=5;count>;0;count--){(pinArray[count],高);延迟(计时器);数字写入(pinArray[count-1],高);延迟(计时器);数字写入(pinArray[count],低);延迟(计时器*2);}

你会在你的LED灯上看到这个可怕的骑士效果!

如果你在这个项目中遇到任何问题,请在下面留下评论,我们将尽力帮助你解决!

下一个步骤

现在,您可以继续学习下一个教程、返回教程或返回索引!