现在做一套交通信号灯,信号灯要从绿灯亮变成黄灯亮,再变成红灯亮,然后再重新开始。时间间隔可以随意设定。这个项目可用于一个实用的铁路交通灯模型或孩子的玩具城市。首先要按照规定的方式做这个项目,当知道项目是如何工作的之后,再按照自己的想法去修改它。
1.硬件连接
要实现交通信号灯试验,需要以下硬件。
(1)红、绿、黄LED灯:3个。
(2)220Ω的电阻:3个。
(3)多彩面包板试验跳线:若干。
(4)面包板:1个。
按照图2-20所示的原理图和图2-21所示的实物图将3个LED灯依次接到数字10,7,4脚上,如图2-21所示。
使用一根跳线将 Arduino 的地端连接到面包板底部的地线上。使用一根地线将每一个LED的阴极引脚通过一个电阻连到公共地上。本次把电阻连接到LED的阴极上(对于这个简单的电路,电阻连在阴极上还是阳极上都没有关系)。
2.程序代码
输入下列代码并检查,如无错误,把代码上传到Arduino中。LED现在模拟交通信号灯系统的工作状态,如图2-22所示。
在这个交通灯模拟试验中,红黄绿三色小灯要模拟真实的交通灯,此处使用的是Arduino的delay()函数来控制延时时间,这相对于C语言来说就要简单许多了。
图2-20 交通信号灯试验电路原理图
图2-21 交通信号灯试验实物接线图
程序代码如下:
int ledred=10;//定义数字10红灯
int ledydllow=7;//定义数字7黄灯
int ledgreen=4;//定义数字4绿灯
void setup()
{
pinmode(ledred,OUTPUT);//设置红灯接口为输出接口
pinmode(ledyellow,OUTPUT);//设置黄灯接口为输出接口
pinmode(ledgreen,OUTPUT);//设置绿灯接口为输出接口
void loop()
{
digitalWrite(ledred,HIGH);//点亮红灯
delay(1000);//延时1000毫秒=1秒
digitalWrite(ledred,LOW);//熄灭红灯
digitalWrite(ledyellow,HIGH);//点亮黄灯
delay(200);//延时200毫秒
digitalWrite(ledyellow,LOW);//熄灭黄灯
digitalWrite(ledgreen,HIGH);//点亮绿灯
dylay(1000);//延时1000毫秒
digitalWrite(ledgreen,LOW);//熄灭绿灯
}