Autor Tema: ayuda con semaforo en pic16f84a!!!  (Leído 8836 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado PolloX

  • PIC10
  • *
  • Mensajes: 7
ayuda con semaforo en pic16f84a!!!
« en: 17 de Julio de 2007, 03:27:12 »
primero que todo soy un noob en esto de los pics y demases, mi proyecto es el siguiente, es bastante sencillo y cuando me di cuenta que ya lo habia terminado por completo, me di cuenta de un detalle, aqui va:

el proyecto consiste en un semaforo utilizando el pic17f84a , y la idea en un comienzo era la siguiente el semaforo consta de 3 leds en las salidas RB0, RB1 y RB2 , luego se me ocurrio agregarle el control de peatones o semaforo de peatones a modo sencillo de explicar ese proceso es: cuando el semaforo esta en rojo, los peatones pueden cruzar por lo tanto u semaforo está en verde, y por otra parte cuando el semaforo esta en verde (el semaforo de autos), el de peatones este en rojo, ese problema lo solucione con la implementacion que hice en el proteus.

agregue un retardo de 2 segundos para el semaforo para que se notase el cambio de los leds.

el codigo es el siguiente:

LIST   P=16F84A,            ; usar PIC 16F84A
   #include <p16f84A.inc>

   __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_RC_OSC   ; code protec      off
                     ; power up timer   on
                     ; watchdog      off
                     ; osc         RC

   ; Asignacion de vaiables utilizadas en demora   
   cont1  equ 0x0c
   cont2  equ 0x0d
   cont3  equ 0x0e



   ORG   0
   BSF   STATUS,5            ; activa la pagina 1
   MOVLW   B'00000'            ; carga 00000 en W
   MOVWF   TRISA               ; puerto a todos salidas
   MOVLW   B'00000000'            ; carga 00000000 en W
   MOVWF   TRISB               ; puerto b todos salidaS
   BCF   STATUS,5            ; volvemos a la pagina 0

   CLRF   PORTB               ; ponemos a cero el puerto b

INICIO                     ; etiqueta
   BSF   PORTB,0               ; prende RB0
   BCF   STATUS,0            ; limpia el carry de STATUS,C
   
REPETIR

IZQ
   CALL   DEMORA               ; demora de 2s
   RLF   PORTB,1               ; rota el contenido de portb a la derecha
   BTFSS   PORTB,2               ; hasta que prenda RB3, luego se salta
   GOTO   IZQ               ; una linea

DER
   CALL   DEMORA               ; demora de 2s
   RRF   PORTB,1               ; rota el contenido de portb a la izquierda
   BTFSS   PORTB,0               ; hasta que prenda RB0, luego salta
   GOTO   DER               ; una linea

   GOTO   REPETIR               ; repite el ciclo

   GOTO   INICIO               ; va a inicio

;-------------------------------------------------------------
;   La demora a sido generada con el programa PicLoops
;   Descripcion: Delay 2s
;-------------------------------------------------------------
DEMORA  movlw   D'3'
   movwf   cont3
   movlw   D'140'
   movwf   cont2
   movlw   D'83'
   movwf   cont1
loop   decfsz   cont1,1
   goto   loop
   decfsz   cont2,1
   goto   loop
   decfsz   cont3,1
   goto   loop
   return

;-------------------------------------------------------------

   END                  ; fin de programa

aca esta la imagen CLICK ACA

ahora el problema es el siguiente, cada vez ke el semaforo pasa por la luz amarilla, las acciones en el semaforo de peatones que tiene solo 2 colores (rojo y verde) se van a nulo o mas bien dicho no hacen nada los leds están apagados, como podria hacer para que cuando la luz del de peatones este por ejemplo en verde y el semaforo de autos cambie a amarillo ese verde parpadee (el del semaforo de peatones) y en el caso de ke cuando el led del semaforo de peatones este en rojo y el de autos cambie de verdae a amarillo haga parpadear el rojo del de peatones.

seria interesantisimo poder terminar ese pequeño problemita que tengo.

cabe destacar que el semaforo lo confeccione tomando como base el ejemplo del auto fantastico adecuandolo a 3 leds y agregandole un nuevo delay, asi que el credito del codigo no es mio en si mas del 80% es del autor del codigo del auto fantastico.

gracias de antemano y saludos desde Temuco-Chile.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: ayuda con semaforo en pic16f84a!!!
« Respuesta #1 en: 17 de Julio de 2007, 12:21:20 »
mira podemos usar mas pines, porque te limitas a usar solo esos tres si tienes muchos pines mas, te aconsejo qeu lleves el semaforo de peatones a otros pines a B3 y B4 por ejemplo y de esa manera ya estan independientes y haces en esos pines lo parpadeos que quieras, o ya usar compartidos pero el que parpaea deberá ser independiente, ademas que si compartes estas exigiendo mas corriente a la salida del pic y puede llegar a dañarse, bueno dime si queires cambiar de pines y si tienes problemas con ello pregunta
.

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: ayuda con semaforo en pic16f84a!!!
« Respuesta #2 en: 17 de Julio de 2007, 18:41:48 »
Comparto con lo que dijo Cryn , si quieres que la luz verde del semaforo de peatones parpadee deberas ponerla en otro pin, y ademas tendras que modificar la logica con el que prendes los leds, ya que de la forma en la que esta no puedes hacer parpadear un pin mientras el otro esta encendido.

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: ayuda con semaforo en pic16f84a!!!
« Respuesta #3 en: 17 de Julio de 2007, 18:48:34 »
¿y porque no usas los retardos por interrupciones? es la situación donde se puede hacer otras cosas.

también puedes contar el tiempo que tarda el bucle principal y acomodar el resto con el retardo faltante, lo malo: así es mas complicado

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ayuda con semaforo en pic16f84a!!!
« Respuesta #4 en: 19 de Julio de 2007, 00:47:19 »
Como tenes actualmente el circuito, no vas a poder hacer mucho. Al  menos desde el PIC. Por ahi con electronica "clasica" algun 555 y un par de capacitores...podes hacer que parpadee una luz en el pasaje de verde a rojo y viceversa. Pero la verdad es que la mejor opcion es separar los pines.

Usa un pin para cada luz. Es lo mas sencillo y rapido.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado BINARIO

  • PIC16
  • ***
  • Mensajes: 156
Re: ayuda con semaforo en pic16f84a!!!
« Respuesta #5 en: 03 de Agosto de 2007, 13:04:32 »
Yo colgue un semaforo bastante piola en asm, es medio basico pero creo que te puede servir a tus fines fijate y me contas que onda, capaz que entre todos podemos dejarlo mas tunnig espero que te sea de ayuda man
000101111 101110000011110 00010 11101 110 1 000111 00010010011010111100 101101001 11110000 001 00 10110 111 00001 01110 0010101 01011110 00 00011111111 0011111 011110001111111111 1011111111101100000000


 

anything