sábado, 29 de setembro de 2012

Arduino - Semáforo interativo

Daew pessoal!

Testei o projeto do ebook que veio junto com o meu Arduino Uno Rev3, nele podemos simular um semáforo interativo para pedestres, quando pressionado o botão o semáforo para carros fecha e abre para os pedestres.

Cricuito para o projeto.



Código:


// Projeto Semaforo interativo

int carRed = 12;
int carYellow = 11;
int carGreen = 10;
int pedRed = 8;
int pedGreen = 9;
int button = 2;        // Botao
int crossTime = 5000;  // Tempo travessia pedestre
unsigned long changeTime;// Tempo ultimo botao

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);  //Verifica seo botao foi pressionado
  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(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();

}


Funcionamento:
 
A o projeto foi retirado do Ebook Arduino Básico - Michael McRoberts 

Um comentário:

Bluesman disse...

Oi gostaria de colocar um sensor ldr no lugar do botao, vc poderia me ajudar?

Busca