这个教程将会展示怎么用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灯就会向我们代码中所写的那样开始闪烁起来了。
如果有什么问题,欢迎留言讨论。
欢迎转载,请留下出处链接:Labno3 » 如何用Arduino搭建交通信号灯,红绿灯系统