交通灯

2019-05-309537
AI 快速预览详细 收起
本文介绍了如何使用Arduino设计一个交通灯系统。项目名称为“路**通灯”,组员包括李羿东、舒涛和刘严发。硬件设计中定义了红灯、黄灯、绿灯以及人行道红绿灯的输入引脚。通过按钮触发交通灯状态的变化,并在每次变化前进行3秒黄灯提示。最终效果是实现了一个完整的交通灯控制系统,适用于STEM教育场景。
http://fanyapbl.chaoxing.com/pbl/bbs/preview?dataId=154778
任务名称:路**通灯
组员姓名:李羿东 舒涛 刘严发

一、任务概述
按题目要求设计面包板,路口红灯亮时人行道红灯亮,路口绿灯亮时人行道绿灯亮。
二、硬件设计
[mw_shl_code=applescript,true]int carRed = 12; //红灯输入
int carYellow = 11;//黄灯输入
int carGreen = 10;//绿灯输入
int pedRed = 9; //路口红灯输入
int pedGreen = 8;//路口绿灯输入
int button = 2; //初值
int crossTime = 5000;
unsigned long changeTime;
void setup() {
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(pedRed, OUTPUT);
pinMode(pedGreen, OUTPUT);
pinMode(button, INPUT);
digitalWrite(carGreen, HIGH);
digitalWrite(pedRed, HIGH);
}
void loop() {
int state = digitalRead(button);
if (state == HIGH && (millis() - changeTime) > 5000) {
changeLights();
}
}
void changeLights() {
digitalWrite(carGreen, LOW);
digitalWrite(carYellow, HIGH);
delay(3000);//延时三秒
digitalWrite(carYellow, LOW);
digitalWrite(carRed, HIGH);
delay(1000);
digitalWrite(pedRed, LOW);
digitalWrite(pedGreen, HIGH);
delay(crossTime);
for (int x=0; x<10; x++) {
digitalWrite(pedGreen, HIGH);
delay(250);
digitalWrite(pedGreen, LOW);
delay(250);
}
digitalWrite(pedRed, HIGH);
delay(500);
digitalWrite(carYellow, HIGH);
digitalWrite(carRed, LOW);
delay(1000);
digitalWrite(carGreen, HIGH);
digitalWrite(carYellow, LOW);
changeTime = millis();
}[/mw_shl_code]

交通灯图2
交通灯图3
交通灯图1

路**通灯.pdf

367.67 KB, 下载次数: 4348

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
gada888
gada888
支持,讲解详细
- 没有更多了 -