Arduino控制交互式LED交通信号灯

2015-12-231.5万
AI 快速预览详细 收起
本文介绍了如何使用Arduino制作一个交互式LED交通信号灯。项目包括红绿黄三色灯的自动切换以及行人按钮控制功能。通过简单的代码和硬件连接,初学者可以轻松完成这个项目。文中详细说明了各个引脚的绑定、等待时长的设置以及按键控制的具体实现方法。最终效果是一个能够响应行人按钮请求的交通信号灯系统。
    ------------------------------------------------------
    小白刚入门,做了一个小小的交互式LED信号灯的实验
    各位大神不要见笑,本来不想拿出来,纯属刷帖刷经验
-----------------------------------------------------------

代码如下:

//绑定各个引脚到各汽车信号灯
int carred = 12;
int caryellow = 11;
int cargreen = 10;

//声明等待时长
int timedelay = 5000;

//绑定引脚到行人型号灯
int pedred = 8;
int button = 9;
int pedgreen = 7;

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() {

  //当按键按下去的时候为高电平信号并赋予变量state
  int state = digitalRead(button);
  //判断按键是否按下并且当系统启动时间距当前按键动作时间间隔大于5s时执行括号内的函数
  if(state == HIGH &&(millis() - changeTime)> 5000){
    changeLights();
  }
}

void changeLights(){
  digitalWrite(cargreen,LOW);
  digitalWrite(caryellow,HIGH);
  delay(2000);

  digitalWrite(caryellow,LOW);
  digitalWrite(carred,HIGH);
  delay(1000);

  digitalWrite(pedred,LOW);
  digitalWrite(pedgreen,HIGH);

  delay(timedelay);

  for(int x=0;x<10;x++) {
    digitalWrite(pedgreen,LOW);
    delay(250);
    digitalWrite(pedgreen,HIGH);
    delay(250);
  }

  digitalWrite(pedgreen,LOW);

  digitalWrite(pedred,HIGH);
  delay(500);

  digitalWrite(carred,LOW);
  digitalWrite(caryellow,HIGH);
  delay(2000);
  digitalWrite(caryellow,LOW);
  digitalWrite(cargreen,HIGH);

  changeTime = millis();  //记录这次按键动作的时间  

}


---------------------------------------------------

连线图&效果图:

Arduino控制交互式LED交通信号灯图1
效果图 1


Arduino控制交互式LED交通信号灯图2

效果图 2

至于连线也不一定非得按教程上面连线,灵活一点。我没有扩展板,就一个uno 外加面板版  5个LED  若干导线...




创作许可协议

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

评论(3)
dsweiliang
dsweiliang
玩起来,一起嗨
iooops
iooops
红绿灯嘎~~
丄帝De咗臂
丄帝De咗臂
玩起来,嗨起来
ikuing
ikuing
作者
回复丄帝De咗臂
哈哈 一起嗨...
- 没有更多了 -