8 de mayo de 2012

Proyecto PIC: Semáforo

Cómputo Integrado
Proyecto PIC

Para esta entrega del proyecto PIC decidí hacer algo simple, un semáforo, con la idea de que nos encontramos en un cruce donde solo hay dos semáforos que controlan el flujo de autos, por lo que tengo dos semáforos que están intercambiando de estado para conceder luz verde de uno a otro y sus estados intermedios de la luz ámbar y luz roja.

Enseguida les muestro material, código y un vídeo del circuito funcionando.

Descripción


Bueno la idea ya quedo planteada, pero ahora veamos un tanto la lógica de un semáforo.

El semáforo pasa por una serie de estados marcados por diferentes colores de luces, verde, ámbar y rojo, cada uno representa una acción diferente para la persona que conduce. El verde significa que el vehículo puede avanzar, y cuando el tiempo esta por terminarse este empieza a parpadear para avisar a los conductores, luego este se apaga para encenderse la luz color ámbar que significa precaución y el conductor debe disminuir velocidad y detenerse, luego se enciende la luz roja que indica alto total, y así da paso a el encendido de la luz verde de otro semáforo, y esto se vuelve un ciclo.

Herramientas usadas

  • Mikro Basic Pro for PIC
  • Programador para PIC-600

Material utilizado


Los componentes utilizados no son muy caros, a excepción del PIC y el protoboard.
  • 1 PIC16F628A
  • 2 LED gigante de 10 mm, color ámbar difuso
  • 2 LED gigante de 10 mm, color verde difuso
  • 2 LED gigante de 10 mm, color rojo difuso
  • 6 resistencias de 330 ohms
  • 1 regulador de voltage MC7805CT
  • 1 protoboard
  • 1 pila de 9 volts
  • 1 broche para pila

Las uniones están hechas con cables cortados de un cable del usado para conexiones Ethernet.
Además use un poco el voltímetro para verificar el voltaje que estaba pasando por el circuito y no quemar el PIC.

Procedimiento


No quiero entrar en detalles de la elaboración, pero resumo en forma general los pasos que yo seguí.
  1. Instalar el programador de PIC en la PC
  2. Instalar Mikro Basic Pro for PIC
  3. Armar el circuito en el protoboard
  4. Verificar el circuito
  5. Pasar programa al PIC
  6. Probar en el protoboard

Código


El código que hice no es el mejor que pueda haber para un semáforo, pero funciona. Tengo en cuenta que hay cosas que se pueden haber simplificado, como por ejemplo al indicar cuales son las entradas o salidas del PIC y reducirlo a una sola línea, y el cambio de semáforo pudo haber sido realizado con funciones, pero por falta de tiempo este fue el que se compilo para luego pasar al PIC.


Imagen del circuito


Aquí les dejo una imagen del circuito creado. En realidad ayuda mucho hacer un circuito un tanto ordenado y no con cables largos pasando por cualquier lado, ya que así tenemos una visión clara de por donde se está pasando el voltaje y el flujo del circuito, además de que nos ayuda a identificar errores fácilmente.

Cabe mencionar que cerca del regulador de voltaje hay un led que use de prueba para verificar si estaba ingresando corriente, ya que por momentos tenía problemas con los cables que van del broche de la pila y que conectan al circuito.


Vídeo


Tome un vídeo corto del funcionamiento del proyecto para dejar evidencia de que sí funciona, por lo menos en este momento, y con esto término mi entrada.


Esto fue todo para la entrega de este proyecto.

Agradecimientos:
Cecilia Urbina por asesorarme con el uso del programador.
Juan Espinosa por ayudarme a verificar el circuito.
Eduardo Triana por su asesoría en los componentes.
Isaias Garza por encontrar el driver del programador para mi sistema operativo.
Roberto Martínez por su apoyo moral.

Proyectos similares:
Alejandro Avendaño

12 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. amigo no tienes el archivo para el pic??

    ResponderEliminar
    Respuestas
    1. Lo siento, cuando hice esta práctica solo me quede con el código mostrado arriba, los archivos generados por la compilación no los tengo.

      Eliminar
  3. hola amgigo, cargo el programa y me da estos errores

    0 1 mikroCPIC1618.exe -MSF -DBG -pP16F628A -DL -O11111114 -fo8
    0 125 All files Preprocessed in 312 ms
    0 121 Compilation Started LedBlinking.c
    1 400 ; expected, but 'pic' found LedBlinking.c
    1 400 ; expected, but 'main' found LedBlinking.c
    3 400 ; expected, but ':' found LedBlinking.c
    3 369 Specifier needed LedBlinking.c
    3 394 Invalid declarator expected'(' or identifier LedBlinking.c
    5 400 ; expected, but 'trisb' found LedBlinking.c
    6 400 ; expected, but '.1' found LedBlinking.c
    6 391 'trisb' Identifier redefined LedBlinking.c
    6 369 Specifier needed LedBlinking.c
    6 394 Invalid declarator expected'(' or identifier LedBlinking.c
    6 400 ; expected, but 'trisb' found LedBlinking.c
    6 391 '' Identifier redefined LedBlinking.c
    6 312 Internal error '' LedBlinking.c
    0 102 Finished (with errors): 04 abr 2013, 03:19:47 LedBlinking.mcppi

    ResponderEliminar
  4. Que tipo de fuente usas para tu semaforo exelente proyecto =)

    ResponderEliminar
    Respuestas
    1. Es una pila de 9 volts, que luego pasa por un regulador de 5 volts.

      Eliminar
  5. Sabes me gusto mucho tu proyecto esta excelente pero y el circuito para armarlo ?

    ResponderEliminar
    Respuestas
    1. Lo siento pero no realicé el esquema del circuito porque me pareció muy simple, y la imagen me parece fácil de interpretar.

      Eliminar
  6. men es necesario tener que insertarle codigo ?? o siemplemente con el montaje y la pila arranca ???

    ResponderEliminar
    Respuestas
    1. Necesitas insertar el código, de lo contrario el PIC no hará nada.

      Eliminar
  7. hola una pregunta como paso el programa al pic
    porfa respuesta es urgente

    ResponderEliminar
    Respuestas
    1. Hola David, si ya tienes instalado el programa y dispones del programador de PICs, entonces ve esta publicación (http://cecilia-urbina.blogspot.com/2012/01/letrero-luminoso-movil.html) de una compañera que grabó video de como pasar el programa, espero te sirva.

      Eliminar