我们都知道Arduino。它是最受欢迎的开源微控制器板之一,对于执行DIY项目非常有用。这个基于Arduino的3路交通灯控制器是一个简单的Arduino DIY项目,有助于了解我们周围看到的交通信号灯的工作。我们在这个交通信号灯电路中介绍了一个更简单的交通信号灯版本。这里已经从3个方面或方式进行了演示。现在让我们进入项目...
所需组件:
- 3*红色LED灯
- 3 *绿色LED灯
- 3 *黄色LED灯
- 3*220欧姆电阻器
- 面包板
- 公对公连接器
- Arduino Uno 带 IDE 电缆
电路说明:
Arduino交通灯控制器项目的电路图如下:
它非常简单,可以很容易地在面包板上构建,如以下步骤所述:
- 在试验板中按红色、绿色和黄色的顺序连接 LED。
- 将 LED 的负极端子放在一起,并将 220 欧姆电阻串联。
- 相应地连接连接器线。
- 将电线的另一端连接到连续引脚(2,3,4...30k
- 使用 Arduino 5v 和 GND 引脚为面包板供电。
程序和工作说明:
这个Arduino交通灯控制器项目的代码很简单,很容易理解。在这里,我们演示了 3 条道路的交通信号灯,代码以特定顺序在所有三个侧面发光 LED,其中实际的交通信号灯工作。就像,一次,两侧中的任何一个都会有两个红色信号,其余一侧都会有一个绿灯。黄灯也会发光,每次1秒,在从红色到绿色的过渡之间,意味着首先红灯亮5秒,然后黄灯亮1秒,最后绿灯亮起。
在程序中,首先我们声明了引脚(2,3...10) 作为 void setup() 中 9 个 LED 的输出(每侧三个,即向前、右侧和左侧)。
void setup() {
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);
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);
}