Menu
CoddyTech

交通信号灯循环

本课属于 Coddy Arduino 学习旅程的“项目”单元。第 1 课,共 24 课。

这个项目分四步搭建一个街道路口:汽车信号灯、优化时间控制、供行人使用的按钮,以及带蜂鸣器的行人信号灯。整个路口的电路已经连接好,所以每一步的电路都保持不变。今天只使用三盏汽车信号灯。

交通信号灯会一直重复相同的步骤:绿灯、黄灯、红灯,然后再回到绿灯。每个步骤都会点亮一盏灯,另外两盏灯熄灭,并保持一段时间。

如果相同的几行代码反复出现,就把它们放进一个函数里。这个函数会点亮传给它的灯,并熄灭其他灯:

void showLight(int pin) {
  digitalWrite(redPin, LOW);
  digitalWrite(yellowPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(pin, HIGH);
}

这样,loop()中的每个步骤只需两行:showLight(greenPin);,以及一个delay(),用来等待这盏灯保持点亮的时长。

challenge icon

挑战

简单

汽车信号灯连接在引脚 12(红色)、11(黄色)和 10(绿色)。让它们循环亮起:

  • 将这三个引脚设为输出
  • 绿色亮 3000 毫秒
  • 黄色亮 1000 毫秒
  • 红色亮 3000 毫秒,然后重新开始

一次只能亮一盏汽车信号灯。按下运行观看路口信号灯,然后按检查。

亲手试试

// 汽车信号灯
const int redPin = 12;
const int yellowPin = 11;
const int greenPin = 10;

void setup() {
  // 将三个灯的引脚设为输出模式

}

void loop() {
  // 绿灯亮 3 秒,黄灯亮 1 秒,红灯亮 3 秒

}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

项目中的所有课

自己练习: Arduino 在线编辑器