TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: frape en 28 de Febrero de 2010, 05:30:05
-
Hola, tengo realizado un codigo para un 16f628A, que dependiendo del estado de un pin y unas condiciones dadas me activa un relé por medio de un transistor BC337 durante 2 segundos.
En alguna ocasión muy de tarde en tarde el relé se queda clavado permanentemente aunque compruebo que el pin que excita el transistor si pasa a estado bajo.
La solucion que veo seria resetear automaticamente el pic una vez transcurridos esos 2 segundos de activacion del rele.
Lo primero que hice fué poner un pin en estado alto desde el inicio del codigo y conectado al pin de reset pensando en pasarlo a estado bajo una vez terminada la temporizacion del rele, torpe de mi que el pic al arrancar al estar aun en estado bajo se resetea continuamente.
Opté por poner un transistor BC337 con emisor a masa y colector al pin reset, la primera vez lo resetea y ya no arranca mas reseteandose constantemente, por lo que la unica opcion que veo es hacerlo por interrupcion interna por flanco descendente del pin que excita el relé y ahi es donde no se seguir.
¿Alguien es tan amable de indicarme el codigo para realizar ese reset?.
Un Saludo.
CMCON=7
TRISB=%10000000
TRISA=%1111
LED1 var PORTB.5
n var byte
@ device pic16F628A , INTRC_osc_NOCLKOUT , WDT_off, MCLR_on, PROTECT_off, CPD_off, BOD_on, PWRT_on
Goto inicio
inicio:
portb.6=0
portb.5=0
if portb.7=0 then
portb.6=1
pause 1000
goto activapin
endif
goto inicio
activapin:
if portb.7=1 then
goto pausa
endif
goto activapin
pausa:
for n=0 to 50
if portb.7=0 and portb.6=1 then
portb.5=1
pause 2000
portb.5=0
portb.6=0
portb.4=0
pause 200
goto inicio
endif
pause 200
next n
goto inicio
-
Lo primero que deberías hacer es encontrar la causa de por qué el relé se queda clavado.
Luego si aún quieres resetear el micro puedes utilizar el watchdog. Mientra no quieres que se resetee el micro limpias el watch dog, y en el momento que quieres que se realice un reset, no le das más bolilla y solo se reseteará.
-
Como ya te mencionan deberías encontrar la causa de por que el rele se queda clavado, ya que si el pin de control conmuta de alto a bajo no es para nada normal lo que sucede y no deberías conformarte con dejarlo así.
La solución que pretendes del reset automático desde mi opinión te estas complicando de mas inecesariamente.
Ya que por lo que comentas tu problemas esta en el rele o el cto que utilizas entre el pin del pic y el rele en tu caso creo que utilizas un transistor