几乎所有人在拿到Arduino后都会做的第一个项目之一就是做红绿灯项目。这是一个非常简单的项目,但它教给你们一些Arduino最相关的基础知识。在本教程中,我们将以一种简单易懂的方式,一步一步地完成Arduino交通灯项目,您甚至可以与您的孩子一起完成。这是一个很好的方式来介绍他们的电子,编程和微控制器。

本项目零件清单

数量 部分/链接
1 x Arduino Uno
1 x USB B型电缆
1 x 无焊料的电路试验板
1 x 跳线设备
1 x 领导的工具包
1 x 电阻器套件(220欧姆)

其中一些链接是附属机构。如果你使用它们,它不花你什么,但我们得到一小笔佣金,这有助于我们继续为你制作内容!

买一个极客酒吧!

如果你需要为这个项目订购零件,这里有一个简单的清单让你开始!

Arduino交通灯接线

Arduino交通灯项目的布线非常简单。这是它成为伟大教育项目之一的部分原因。每个LED将连接到Arduino上的专用引脚,并共享一个共同的地面。我们将使用100欧姆的电阻来防止led上的电流过载。

  • 销2绿色发光二极管+(阳极)
  • 销3黄色的领导+(阳极)
  • 销4红色发光二极管+(阳极)
  • 接地常见的在电路试验板
  • 在面包板上的每个LED(阴极)和共接地轨之间放置一个100欧姆的电阻

我已经在这本书中为你说明了这一点熔块简图确保电阻器位于负极(阴极)导线上。LED的负极(-)或负极引线将较短。而阳极(或正极)引线将更长。如果不使用100欧姆电阻器,将导致LED灯迅速熄灭。如果你没有任何100欧姆的LED,你可以用相近的替代品,比如150欧姆的电阻器。

在我们编写一些代码来控制这些led之前,它们不会发生任何变化。所以让我们继续,做下一个!

Arduino交通灯代码

所以现在还不是编写基本的Arduino程序来控制交通灯模式下的led的时候。这段代码非常简单,大多数人应该很容易理解。如果你有困难“得到它”,有一些很棒的教程Arduino网站

交通灯变量

我们要做的第一件事是创建一些变量。我们可以跳过这一部分,但是我们必须在许多地方进行同样的更改,以更改交通灯的时间和配置。例如,我们可能想要使红灯变长或变短,我们所需要做的就是更改DELAY_red变量并将代码重新上传到Arduino。只需要一两秒钟的变化。

主要两个变量将用于延迟和Arduino上对应LED颜色的LED引脚位置。这也会使我们的程序更容易理解。由于我们在上面的Arduino交通灯接线中进行了引脚分配,我们现在需要告诉代码所有东西的连接位置。

//变量int绿色=2;int黄色=3;int RED=4;int DELAY_绿色=5000;int DELAY_黄色=2000;int DELAY_RED=5000;

交通灯引脚分配

现在我们已经创建了变量,我们需要告诉Arduino如何分配这些大头针。在我们的例子中,这些大头针是输出引脚,我们可以发送3.3v到每个LED。为此,我们将使用pinMode函数。pinMode函数接受两个参数:pin编号和模式。模式将是输入或输出。我们的pin设置代码如下所示:

//基本函数void setup(){pinMode(绿色,输出);pinMode(黄色,输出);pinMode(红色,输出);}

交通灯环路功能

Loop函数就像声音一样。它将遍历我们的其他函数。我们将在循环函数中调用我们自己的函数来改变交通灯模式中的LED。

Void loop() {green_light();延迟(DELAY_GREEN);yellow_light ();延迟(DELAY_YELLOW);red_light ();延迟(DELAY_RED);}

红绿灯更新功能

这些函数完全符合您的想法。它们打开我们选择的颜色LED,并关闭当前打开的任何其他LED。

无效绿灯(){digitalWrite(绿色,高);digitalWrite(黄色,低);digitalWrite(红色,低);}无效黄灯(){digitalWrite(绿色,低);digitalWrite(黄色,高);digitalWrite(红色,低);}无效红灯(){digitalWrite(绿色,低);digitalWrite(黄色,低);digitalWrite(红色,高);}

编写并上传交通灯代码

现在我们已经准备好了所有的代码,是时候将其上传到Arduino Uno了。单击Sketch中的verify按钮,确保您的代码进行了验证(如果没有检查拼写错误)。

通过USB将Arduino插入PC后,单击Arduino草图中的上载图标。您的代码应该在一两秒钟内开始执行,交通灯应该开始工作。

了解更多有关Arduino交通灯项目的信息

现在,您已经完成了Arduino交通灯项目,请花一些时间再次检查代码并进行一些更改。尝试将DELAY_RED、DELAY_GREEN和DELAY_YELLOW变量更改为较长、较短的间隔。整数的单位是毫秒,所以每一秒以1000为单位递增。美国一些装有红灯摄像头的城市把黄灯缩短了,以便开更多罚单。不要那样作恶!

相关项目:Arduino列车穿越项目

如果你对你的红绿灯项目有任何想法或评论,请在下面留下!

交通灯工程完整代码

如果你只是想要完整的交通灯项目代码,复制并粘贴到Sketch,并上传到你的Arduino。

//变量int绿色=2;int黄色=3;int RED=4;int DELAY_绿色=5000;int DELAY_黄色=2000;int DELAY_RED=5000;//基本函数void setup(){pinMode(绿色,输出);pinMode(黄色,输出);pinMode(红色,输出);}void loop(){GREEN_light();delay(延迟绿);YELLOW_light();delay(延迟黄);RED_light();delay(延迟红);}void GREEN_light(){digitalWrite(绿色,高);digitalWrite(黄色,低);void YELLOW_light(){digitalWrite(绿色,低);digitalWrite(黄色,高);digitalWrite(红色,低);}无效红灯(){digitalWrite(绿色,低);digitalWrite(黄色,低);digitalWrite(红色,高);}

下一个步骤

现在你已经完成了Arduino交通灯教程,你可以继续下一个教程或回到主索引。