如何用Arduino搭建交通信号灯,红绿灯系统

这个教程将会展示怎么用Arduino搭建交通信号灯和红绿灯系统,需要的代码和硬件都非常少,非常适合初学者动手实践。

尽管交通信号灯看起来非常简单,但是麻雀虽小,五脏俱全。

设备清单

Arduino搭建交通信号灯的设备清单列举如下

  • Arduino Uno
  • 红,黄,绿LED灯各一个
  • 100欧姆电阻3个
  • 面包板线
  • 面包板

Arduino交通信号灯电路图

我们要设置的电路非常简单,几分钟就能完成,每个引脚控制一个LED灯。

  • 引脚2接绿色LED的正极。
  • 引脚3连接到黄色LED的正极。
  • 引脚4连接到红色LED的正极。
  • 在LED负极的每条腿上加一个100欧姆的电阻,并让它与GND相连。

下面这张图是电路的接线图,是用Fritzing绘制的,这是非常好用的工具,推荐给你。

 

Arduino交通信号灯代码

现在是时候写一些代码给我们的电路赋予灵魂,如果你是一个编程高手,你会发现这段代码相当简单,如果你没有编码经验,认真研究一下,你会获得很多知识。

首先,我们声明变量,这些变量用来存储数据,在整个程序范围内有效。

例如,GREEN变量代表绿色LED所连接的引脚。

DELAY_GREEN变量是以毫秒为单位的时间量,用于延迟程序的执行。

// variables
int GREEN = 2;
int YELLOW = 3;
int RED = 4;
int DELAY_GREEN = 5000;
int DELAY_YELLOW = 2000;
int DELAY_RED = 5000;

现在需要设置引脚,让它们作为输出。pinMode函数接受两个参数:引脚号和模式(输出或输入)

// basic functions
void setup()
{
  pinMode(GREEN, OUTPUT);
  pinMode(YELLOW, OUTPUT);
  pinMode(RED, OUTPUT);
}

现在,需要为每个LED创建一个函数。green_light()函数将打开绿色LED,同时关闭黄色和红色LED。

void green_light()
{
  digitalWrite(GREEN, HIGH);
  digitalWrite(YELLOW, LOW);
  digitalWrite(RED, LOW);
}

void yellow_light()
{
  digitalWrite(GREEN, LOW);
  digitalWrite(YELLOW, HIGH);
  digitalWrite(RED, LOW);
}

void red_light()
{
  digitalWrite(GREEN, LOW);
  digitalWrite(YELLOW, LOW);
  digitalWrite(RED, HIGH);
}

loop函数会在Arduino上电后持续不断地循环执行。

void loop()
{
  green_light();
  delay(DELAY_GREEN);
  yellow_light();
  delay(DELAY_YELLOW);
  red_light();
  delay(DELAY_RED);
}

写完代码之后,用USB线把代码上传到Arduino,等待一会儿,LED灯就会向我们代码中所写的那样开始闪烁起来了。

如果有什么问题,欢迎留言讨论。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 如何用Arduino搭建交通信号灯,红绿灯系统

赞 (1)

评论

9+6=