proyecto-04-esquema-electrico-cruce-de-cebra-con-pulsador

Proyecto con Arduino Nº 04 – “Paso de cebra con pulsador”

 

PROYECTO “PASO DE CEBRA CON PULSADOR”

Dificultad: Media

Tiempo estimado: 60m

FUNCIONAMIENTO DEL PROGRAMA:

En este proyecto con Arduino vamos a incluir las luces del semáforo de peatones y un pulsador para pedir el paso. La placa Arduino reaccionará al presionar el pulsador, cambiando el estado de las luces, para parar el paso de los coches y permitir el paso de los peatones.

En este proyecto, haremos también nuestras primeras funciones. A partir de ahora en la lista de materiales no indicaremos los cables de conexiones, ya que utilizaremos tantos como necesitemos.

Cuando el programa empiece a funcionar veremos que la luz de los coches empieza en verde y el semáforo de peatones en rojo.

Al pulsar el botón el programa comprueba que han pasado 5 segundos, por lo menos, desde la última vez que el botón fue pulsado, para permitir que el tráfico se mueva, entonces, pasará a ejecución una función que llamaremos CambiaLuces(), en esta función la luz de los coches va de verde a ámbar y a rojo, será entonces cuando la luz de los peatones cambiará a verde.

Después de un periodo de tiempo razonable para que los peatones crucen la calle, la luz verde del semáforo de peatones parpadeará para advertir a los peatones que deben darse prisa para cruzar la calle. Entonces la luz de los peatones cambiará a rojo y la de los vehículos volverá a su rutina habitual, verde-ámbar-rojo.

CONEXIONES

Comprobando primero que todo está desconectado. Conectaremos el Arduino tal como aparece en la figura y teniendo mucho cuidado de colocar cada uno de los extremos del cable en los orificios (entradas y salidas) adecuados.

proyecto-04-conexiones-cruce-de-cebra-con-pulsador

ESQUEMA ELÉCTRICO

 
proyecto-04-esquema-electrico-cruce-de-cebra-con-pulsador

Hardware
(Lista de materiales)

Id

Descripción

Cantidad

1

Placa Arduino R3

1

2

Placa Protoboard

1

3

Led Verde

2

4

Led Amarillo

1

5

Led Rojo

2

6

Resistencias de 220 Ohmios

5

7

Resistencia de 10 Kohmios

1

8

Pulsador

1

 

Programa

// Proyecto 04 – Paso de cebra con pulsador de peatones – APROBARFACIL.COM

int ledDelay = 200; // Tiempo entre cambios de estado

int CarRojo = 13;

int CarAmarillo = 12;

int CarVerde = 11;

int PeaRojo=10;

int PeaVerde=9;

int Boton=2;

int TiempoParaCruzar = 5000;

unsigned long changeTime; // Tiempo desde que el boton esta pulsado

void
setup()

{

Serial.begin(9600);

int i,j;

for(i=9;i<14;i++)

{

pinMode(i,OUTPUT);

digitalWrite(i,LOW);

}

for(i=9;i<14;i++)

{

digitalWrite(i,HIGH);

delay(ledDelay/3);

}

for(i=9;i<14;i++)

{

digitalWrite(i,LOW);

delay(ledDelay/3);

}

}

void RutinaDeLuces()

{

int estado=0;


for(estado=1;estado<4;estado++)

{

switch(estado)

{


case(0):

digitalWrite(CarRojo, LOW);

digitalWrite(CarAmarillo, LOW);

digitalWrite(CarVerde, LOW);

digitalWrite(PeaRojo, LOW);

digitalWrite(PeaVerde, LOW);


break;


case(1):


digitalWrite(CarRojo, HIGH);


digitalWrite(CarAmarillo, LOW);

digitalWrite(CarVerde, LOW);

digitalWrite(PeaRojo, LOW);

digitalWrite(PeaVerde, HIGH);

break;

case(2):

digitalWrite(CarRojo, LOW);

digitalWrite(CarAmarillo, HIGH);

digitalWrite(CarVerde, LOW);

digitalWrite(PeaRojo, HIGH);

digitalWrite(PeaVerde, LOW);

break;

case(3):

digitalWrite(CarRojo, LOW);
digitalWrite(CarAmarillo, LOW);

digitalWrite(CarVerde, HIGH);

digitalWrite(PeaRojo, HIGH);

digitalWrite(PeaVerde, LOW);

break;

}

delay(ledDelay);

digitalWrite(CarRojo, LOW);


digitalWrite(CarAmarillo, LOW);


digitalWrite(CarVerde, LOW);


digitalWrite(PeaRojo, LOW);


digitalWrite(PeaVerde, LOW);

}

}

void PasoDePeatones()

{

int estado=0;


Serial.println(“paso de peatones”);


for(estado=1;estado<3;estado++)

{

switch(estado)

{

case(1):

digitalWrite(CarRojo, LOW);

digitalWrite(CarAmarillo, HIGH);

digitalWrite(CarVerde, LOW);

digitalWrite(PeaRojo, HIGH);

digitalWrite(PeaVerde, LOW);

break;

case(2):

digitalWrite(CarRojo, HIGH);

digitalWrite(CarAmarillo, LOW);

digitalWrite(CarVerde, LOW);

digitalWrite(PeaRojo, LOW);

digitalWrite(PeaVerde, HIGH);

break;

}


delay(ledDelay);


digitalWrite(CarRojo, LOW);


digitalWrite(CarAmarillo, LOW);


digitalWrite(CarVerde, LOW);


digitalWrite(PeaRojo, LOW);


digitalWrite(PeaVerde, LOW);

}

}

void loop()

{

int
EstadoBoton=digitalRead(Boton);

if(EstadoBoton == HIGH && (millis() – changeTime) > 5)

{

PasoDePeatones();

}

else

{

RutinaDeLuces();

}

}

Notas:

  • Utiliza cable negro para todas las conexiones a masa
  • Utiliza cable rojo para todas las conexiones a VCC (5V).
  • No importa los colores que utilices para las demás conexiones.
  • Ten cuidado al conectar los componentes en el protoboardpues puedes dañarlos.
  • Comprueba que conectas el led con la polaridad correcta. (Cátodo a masa).
  • Cuando todo esté correctamente conectado puedes conectar el cable USB.

Observaciones

Una vez comprobado el código y subido el led al Arduino, ser encenderán y apagarán todos los leds tres veces y después comenzará la secuencia del programa.

Enlaces del proyecto en 123D Circuits

Proyecto 04 – Cruce de peatones con pulsador

 

 

Comentarios

Deja un comentario