Arduino:交通信号灯

实验要求:

自主实现交通信号灯程序,把程序下载到开发板,观察工作状态是否正确。

实验内容:

 接线图

 

 

 功能:

模拟交通信号灯:每个颜色在亮起一段时间后都需要闪烁再变更颜色。规律如下:绿灯亮→绿灯闪烁→黄灯亮→黄灯闪烁→红灯亮→红灯闪烁→绿灯……(周而复始)。

在一路交通信号灯中的绿灯黄灯先后亮起并闪烁的同时二路交通信号灯红灯亮起并闪烁。之后二路交通信号灯的绿灯黄灯先后亮起并闪烁,与此同时一路交通信号灯红灯亮起并闪烁。

 代码:

int Pin[] = {5, 6, 7, 8, 9, 10};

//绿灯闪烁
void ss(int x) {
  for (int i = 0; i < 3; i++) {
    digitalWrite(x, LOW);
    delay(500);
    digitalWrite(x, HIGH);
    delay(500);
  }
}

//黄灯9和红灯5闪烁
void ss1() {
  for (int i = 0; i < 3; i++) {
    digitalWrite(9, LOW); //黄灯9灭
    digitalWrite(5, LOW); //红灯5灭
    delay(500);
    digitalWrite(9, HIGH); //黄灯9亮
    digitalWrite(5, HIGH); //红灯5亮
    delay(500);
  }
}

//黄灯6和红灯8闪烁
void ss2() {
  for (int i = 0; i < 3; i++) {
    digitalWrite(6, LOW); //黄灯6灭
    digitalWrite(8, LOW); //红灯8灭
    delay(500);
    digitalWrite(6, HIGH); //黄灯6亮
    digitalWrite(8, HIGH); //红灯8亮
    delay(500);
  }
}

void sy2() {
  digitalWrite(10, HIGH); //绿灯10亮
  digitalWrite(5, HIGH); //红灯5亮
  delay(3000);
  ss(10); //绿灯10闪烁3次
  digitalWrite(10, LOW); //绿灯10灭
  digitalWrite(9, HIGH); //黄灯9亮
  delay(1000);
  ss1();//黄灯9和红灯5闪烁3次
  digitalWrite(9, LOW); //黄灯9灭
  digitalWrite(5, LOW); //红灯5灭
  digitalWrite(7, HIGH); //绿灯7亮
  digitalWrite(8, HIGH); //红灯8亮
  delay(3000);
  ss(7); //绿灯7闪烁3次
  digitalWrite(7, LOW); //绿灯7灭
  digitalWrite(6, HIGH); //黄灯6亮
  delay(1000);
  ss2();//黄灯6和红灯8闪烁3次
  digitalWrite(6, LOW); //黄灯6灭
  digitalWrite(8, LOW); //红灯8灭
}

void setup() {
  for (int i = 0; i < 6; i++) {
    pinMode(Pin[i], OUTPUT);
    digitalWrite(Pin[i], LOW);//初始化,灯全灭
  }
}

void loop() {
  sy2();
}

 

你可能感兴趣的:(Arduino单片机,单片机)