The power of root

Arduino - Semáforo interativo

sáb 29 setembro 2012 arduino / semaforo / led /

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.

image0 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

on the top

Comments