Menú principal

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: