segunda-feira, 9 de junho de 2014

Semáforo Interativo Arduino


//Semaforo interativo
//Fernando Ferreira Silva, 18/02/2014
//Licença:GPL

int car_verm = 12;
int car_ama = 11;
int car_verde = 10;
int ped_verm = 9;
int ped_verde = 8;
int botao = 2;
int crossTime = 5000;
unsigned long changeTime;

void setup(){
  pinMode(car_verm, OUTPUT);
  pinMode(car_ama, OUTPUT);
  pinMode(car_verm, OUTPUT);
  pinMode(car_verde, OUTPUT);
  pinMode(ped_verm, OUTPUT);
  pinMode(ped_verde, OUTPUT);
  pinMode(botao, INPUT);
  
  digitalWrite(car_verde, HIGH);
  digitalWrite(ped_verm, HIGH);
}
void loop(){
  
  int state = digitalRead(botao); //verifica estado de S1
  
  if (state == HIGH && (millis() - changeTime) > 5000){
    changeLights();
  }
}
  void changeLights(){
    
    digitalWrite(car_verde, LOW);
    digitalWrite(car_ama, HIGH);
    delay(2000);
    digitalWrite(car_ama, LOW);
    digitalWrite(car_verm, HIGH);
    digitalWrite(ped_verm, LOW);
    digitalWrite(ped_verde, HIGH);
    delay(crossTime);
    
    for(int x=0; x<10; x++){
  
      digitalWrite(ped_verde, HIGH);
      delay(250);
      digitalWrite(ped_verde, LOW);
      delay(250);
      
      }
  
  digitalWrite(ped_verm, HIGH);
  delay(500);
  digitalWrite(car_verm, LOW);
  digitalWrite(car_verde, HIGH);
  
  //registra o tempo
  changeTime = millis();
  
}

Nenhum comentário :

Postar um comentário