No me lee las entradas

#1
Hola a todos...
Estoy intentando armar un timer con un 16F628A y puesto q no tiene forma de contar tiempos largos tuve q crear una variable y q cuente tantas veces un tiempo mas chico pooara luego alimentar un rele.
El programa me funciona perfecto en el Proteus, el tema es cuando lo grabo en el PIC, utilizo el Programador JDM (de construccion casera) y el IC Prog.
El IC Prog me indica q la grabacion es correcta.
Pero resulta q cuando intento ver si funciona en el protoboard no pasa nada, solo enciende un led intermitente q me indica cuando no hay entradas activas.

Puede ser un problema del JDM ??? Otros proyectos mas sencillos aun, funcionaron perfecto. Es mas el mismo timer funciona perfecto solo (sin entradas q lo controlen).

O puede ser el PIC??? la llave la conecto directo a Vcc y puse una resistencia conectada a tierra para q me haga un 0 cuando esta abierta.

Como puedo determinar en q estoy fallando???

Muchas gracias...
 
#2
Hola, yo diria que no es tu programador por que de lo contrario no encenderia el LED ademas ya lo has probado con otros circuitos. Revisa con un multimetro sii esta saliendo voltaje por el pin del micro que va a alimentar el rele, sii no sale nada entonces es el codigo de programa que de seguro tienes algo mal.

PD: No te confies de proteus, el simula asii hayan errores en el codigo. Ya me ha pasado.
 
#3
Mirá aca esta todo el programa, a ver si encontras algun error.

cmcon = 7
trisb=0
trisa=1
REPE VAR BYTE
LLAVE1 VAR PORTA.0
LLAVE2 VAR PORTA.1
LLAVE3 VAR PORTA.3

LED VAR PORTB.2
LED1 VAR PORTB.3



PROG:


IF LLAVE1 = 1 THEN
FOR REPE = 1 TO 5
HIGH LED
PAUSE 100
NEXT
FOR REPE = 1 TO 3
LOW LED
PAUSE 100
NEXT
GOTO PROG



ELSE

LOW LED

ENDIF



IF LLAVE2 = 1 THEN
FOR REPE = 1 TO 5
HIGH LED
PAUSE 200
NEXT
FOR REPE = 1 TO 3
LOW LED
PAUSE 200
NEXT
GOTO PROG
ELSE

LOW LED

ENDIF

IF LLAVE3 = 1 THEN
FOR REPE = 1 TO 5
HIGH LED
PAUSE 300
NEXT
FOR REPE = 1 TO 3
LOW LED
PAUSE 300
NEXT
GOTO PROG
ELSE

LOW LED

ENDIF

IF LLAVE1 = 0 THEN
HIGH LED1
PAUSE 100
LOW LED1
PAUSE 100
ELSE
LOW LED1
ENDIF
IF LLAVE2 = 0 THEN
HIGH LED1
PAUSE 100
LOW LED1
PAUSE 100
ELSE
LOW LED1
ENDIF
IF LLAVE2 = 0 THEN
HIGH LED1
PAUSE 100
LOW LED1
PAUSE 100
ELSE
LOW LED1
ENDIF

GOTO PROG


Los PIC's se joden por la estatica??? es decir si lo hagarras con la mano sin tener pulsera, o mal guardados, porq en donde me los vendieron los tenian en una gabinete de plastico.
Para hacer alta una entrada se puede utilizar directamente los 5 voltios de la fuente, es decir sin resistencia limitadora???
En el IC PROG en "bits de configuracion" cuales debo marcar y cuales no???

Gracias.........
 
#4
trisa = 11 ' para que los pines PORTA.0, PORTA.1, PORTA.3 sean entrada.
Los PIC's se joden por la estatica???
Intenta no usar ese tipo de comentarios.
si lo hagarras con la mano sin tener pulsera, o mal guardados, porq en donde me los vendieron los tenian en una gabinete de plastico.
No. Tiene que ser de mayor intensidad para que se arruine.
Para hacer alta una entrada se puede utilizar directamente los 5 voltios de la fuente, es decir sin resistencia limitadora???
Si, pero si usas ambos (Vcc y Gnd) como en los circuitos de los pulsadores asegúrate de poner uno de ellos por medio de una resistencia, de otro modo hay cortocircuito.
En el IC PROG en "bits de configuración" cuales debo marcar y cuales no???
Los "bits de configuracion" tienen varias opciones para el usuario, donde lo principal te pregunto...
- El PIC 16F628A tiene oscilador externo (hasta 20Mhz) e interno (37Khz - 4Mhz); que frecuencia usas?
- El MCLR puede conectarse interna (deja un pin libre como entrada) o externamente; cómo lo usas?
- Soporta el LVP, esto si en OFF.

PD: No uso el Ic-prog pero con una leída al datasheet del pic puedes saber que significan las siglas de los bits de configuración.

saludos
 
#5
:D Los integrados CMOS sii son algo sensibles a la estatica en comparacion a los TTL. Y los pics no tienen ese problema, pues hasta el momento yo no he dañado ninguno por tocarles las patas.

Bueno con el codigo creo que no hay mas error (no manejo ese lenguaje ni ese pic) que el que ya dijo axel. Yo me acostumbre a hacerlo en binario por que asi pongo en 1 el pin que quiero declarar como entrada, es decir b'00000111' .
 
#6
Estube midiendo con el tester y descubri algo, el pin 2 a pesar de tener una resistencia de 470 ohm conectada a tierra me marca 4,7v es decir esta en alto, probe entonces conectarla directamente a tierra y magia empezo a funcionar...
A q se debe esto??? porq' se mantiene en alto??? esta en cortocircuito el chip adentro??? es raro no???
 
#7
a ver joven... conecto dos veces la resistencia a tierra? esta un poco ambigua su descripcion.

Ah por cierto, en el programa, escriba todo el puerto en cero. Igual revise que de verdad este en entrada con el registro TRIS. No valla a volarse los transistores del puerto.
 
Última edición:
#8
Estube midiendo con el tester y descubri algo, el pin 2 a pesar de tener una resistencia de 470 ohm conectada a tierra me marca 4,7v es decir esta en alto, probe entonces conectarla directamente a tierra y magia empezo a funcionar...
A q se debe esto??? porq' se mantiene en alto??? esta en cortocircuito el chip adentro??? es raro no???
O.O??? A tierra??, no sera a fuente?.. no pues pin 2 era entrada? Algo no me cuadra.. podrias poner el circuito para ver que es lo estas haciendo
 
#9
Lo q hice fue conectar las tres entradas a GND por medio de tres resistencias de 470 Ω (en el proteus las tenia en 1K), las llaves conectan las entradas a Vcc...
Ahora... si yo no activo ninguna llave, el circuito funciona como si estubiera activada la llave 3, mido con el tester y me da 4.7 V mas o menos...
Eso es lo q me sucede... no se porq tiene ese voltage... luego conecte directamente a tierra sin ninguna llave activada y recien entonces dejo de funcionar...
Es raro no???
 

Adjuntos

#10
Se recomienda resistores de 4.7KΩ a 47KΩ, es un horror si usas solo resistores de Ω.
TRISA = %0001011, ya que en tu código solo pones RA0 como entrada.

No será la llave lo raro? ya que el circuito es de lo más simple...
 
#11
Compre unos PIC's nuevos y al fin pude hacerlos andar... Funciona perfectamente con resistencias de 10k, asi q seguramente estaria dañado el PIC...
Muchas gracias por todo... Un abrazo...
 
#13
Estuve modificando el programa, haciendo unos retoques...
Y saben algo??? por ahi los grabo correctamente y todo bien... Pero me paso con dos pic's q al grabarlos el ic-prog me tira error y no hay forma de q vuelvan a funcionar...
Puede ser mal configurado el ic-prog???
tiene alguna configuracion para bloquear al pic y q no se pueda modificar???
:eek:
 
#14
y esos pic que no funcionaron estaban buenos?? ya los habias probado?, siii es asii depronto sii tengas problemas con tu programador.. pide prestado uno y prueba en otro programador. O si no es que ya esos pic estaban malos. De igual forma checa si los estas poniendo en la posicion correcta sobre el zif para grabarlos
 
Última edición:
#15
Los pic's eran buenos los programe y lo hice funcionar dos o tres veces...
Debe ser el programador... Lo arme casero con un diagrama q baje de internet... Es un JDM...
Como puedo probarlo???
En donde vivo nadie tiene programadores, es por eso q me lo arme yo...
 

Temas similares

Arriba