基于Arduino的3路交通灯控制器

描述

我们都知道Arduino。它是最受欢迎的开源微控制器板之一,对于执行DIY项目非常有用。这个基于Arduino的3路交通灯控制器是一个简单的Arduino DIY项目,有助于了解我们周围看到的交通信号灯的工作。我们在这个交通信号灯电路中介绍了一个更简单的交通信号灯版本。这里已经从3个方面或方式进行了演示。现在让我们进入项目...

所需组件:

  1. 3*红色LED灯
  2. 3 *绿色LED灯
  3. 3 *黄色LED灯
  4. 3*220欧姆电阻器
  5. 面包板
  6. 公对公连接器
  7. Arduino Uno 带 IDE 电缆

电路说明:

Arduino交通灯控制器项目的电路图如下:

控制器

它非常简单,可以很容易地在面包板上构建,如以下步骤所述:

  1. 在试验板中按红色、绿色和黄色的顺序连接 LED。
  2. 将 LED 的负极端子放在一起,并将 220 欧姆电阻串联。
  3. 相应地连接连接器线。
  4. 将电线的另一端连接到连续引脚(2,3,4...30k
  5. 使用 Arduino 5v 和 GND 引脚为面包板供电。

程序和工作说明:

这个Arduino交通灯控制器项目的代码很简单,很容易理解。在这里,我们演示了 3 条道路的交通信号灯,代码以特定顺序在所有三个侧面发光 LED,其中实际的交通信号灯工作。就像,一次,两侧中的任何一个都会有两个红色信号,其余一侧都会有一个绿灯。黄灯也会发光,每次1秒,在从红色到绿色的过渡之间,意味着首先红灯亮5秒,然后黄灯亮1秒,最后绿灯亮起。

在程序中,首先我们声明了引脚(2,3...10) 作为 void setup() 中 9 个 LED 的输出(每侧三个,即向前、右侧和左侧)。

void setup() {
  // configure the output pins
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
}

然后在 void loop() 函数中,我们编写了如上所述按顺序打开和关闭交通信号灯的代码。

void loop() 
{

  digitalWrite(2,1); //enables the 1st set of signals
  digitalWrite(7,1);
  digitalWrite(10,1);
  digitalWrite(4,0);
  digitalWrite(3,0);  
  digitalWrite(6,0);
  digitalWrite(8,0);
  digitalWrite(9,0);
  digitalWrite(5,0);
  delay(5000);
  ..... ....
  ..... ....

下面的视频很好地演示了此过程。首先,向上/向前侧打开(绿色),而其他两侧(即左侧和右侧)保持关闭并显示红色信号,延迟 5 秒。然后黄灯在右侧亮起 1 秒,然后绿灯亮起,让其他两侧(即上侧和左侧为红色)用红灯和 5 秒延迟关闭。然后左侧的黄色发光 1 秒,然后是绿色,留下上侧和右侧红色,延迟 5 秒。此过程在 void loop() 函数中循环用于连续过程。在这里,我们可以修改红灯、黄灯和绿灯保持亮起和熄灭的延迟。

void setup() {
// configure the output pins
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop()
{
digitalWrite(2,1); //enables the 1st set of signals
digitalWrite(7,1);
digitalWrite(10,1);
digitalWrite(4,0);
digitalWrite(3,0);
digitalWrite(6,0);
digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(5,0);
delay(5000);
digitalWrite(3,1); //enables the yellow lights
digitalWrite(6,1);
digitalWrite(2,0);
digitalWrite(7,0);
delay(1000);
digitalWrite(4,1); //enables the 2nd set of signals
digitalWrite(5,1);
digitalWrite(10,1);
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(6,0);
digitalWrite(8,0);
digitalWrite(9,0);
digitalWrite(7,0);
delay(5000);
digitalWrite(9,1); //enables the yellow lights
digitalWrite(6,1);
digitalWrite(10,0);
digitalWrite(5,0);
digitalWrite(4,0);
delay(1000);
digitalWrite(8,1); //enables the 3rd set of signals
digitalWrite(4,1);
digitalWrite(7,1);
digitalWrite(2,0);
digitalWrite(3,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,0);
delay(5000);
digitalWrite(9,1); //enables the yellow lights
digitalWrite(3,1);
digitalWrite(7,0);
digitalWrite(8,0);
digitalWrite(4,0);
delay(1000);
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分