sábado, 13 de febrero de 2016

Cruce de semáforos con Arduino

Este ejercicio se trata de realizar un cruce de semáforos con Arduino, de tal forma que la secuencia tiene que ser:
verde1-rojo2 durante 3 segundos
ambar1-rojo2 durante 500ms
rojo1-verde2 durante 3 segundos
rojo1-ambar2 durante 500ms

A continuación os dejaré un vídeo donde podréis ver el funcionamiento, el esquema electrónico y el programa resuelto.

Vídeo de funcionamientohttps://youtu.be/cIxb1l1drLw

Programa resuelto:

int leds[] = {3, 4, 5, 6, 7, 8}; //verde1=3, ambar1=4...
int tiempo1 = 3000;
int tiempo2 = 500;
int i;

void setup() {
  for (i = 0; i < 6; i++)
  {
    pinMode(leds[i], OUTPUT);
  }
}

void loop() {
  digitalWrite (leds[2], HIGH);//ro1
  digitalWrite (leds[3], HIGH);//ver2
  delay(tiempo1);
  digitalWrite (leds[3], LOW);//apaga ver2
   digitalWrite (leds[2], LOW);

  digitalWrite (leds[4], HIGH);//ambar2
  digitalWrite (leds[2], HIGH);//rojo1
  delay(tiempo2);
  digitalWrite (leds[4], LOW);//amabar2
  digitalWrite (leds[2], LOW);//ro1

  digitalWrite (leds[0], HIGH);//ver1
  digitalWrite (leds[5], HIGH);//rojo2
  delay(tiempo1);
  digitalWrite (leds[0], LOW);//ver1
  digitalWrite (leds[5], LOW);//rojo2

  digitalWrite (leds[1], HIGH);//amb1
  digitalWrite (leds[5], HIGH);//roj2
  delay(tiempo2);
  digitalWrite (leds[1], LOW);
  digitalWrite(leds[5], LOW);
}

Esquema electrónico:

1 comentario: