int carRed = 12; //设置汽车灯
int carYellow = 11;
int carGreen = 10;
int button = 9; //按钮引脚
int pedRed = 8; //设置行人灯
int pedGreen = 7;
int crossTime = 5000;//允许行人通过的时间
unsigned long changeTime;//按钮按下后的时间
void setup() {
// put your setup code here, to run once:
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 changeLights(){
digitalWrite(carGreen, LOW);
digitalWrite(carYellow,HIGH);
delay(2000);
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(carRed, LOW);
digitalWrite(carYellow, HIGH);
delay(1000);
digitalWrite(carYellow, LOW);
digitalWrite(carGreen, HIGH);
changeTime=millis();
}
void loop() {
// put your main code here, to run repeatedly:
int state=digitalRead(button);
if(state == HIGH && (millis() - changeTime)> 5000){
changeLights();
}
}