TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: llllover en 17 de Noviembre de 2013, 15:17:46
-
Hola amigos de todopic, soy nuevo en el foro y creo q nadie comentó sobre el problema que me surge a mi, espero estarlo planteado en el lugar adecuado, llevo dandole vueltas desde hace unos días con el 16f84a y no encuentro fácil solución. Resulta que en las configuraciones de salida cuando supuestamente debería tener un nivel alto con 5v o próximos solo me saca 1,8v y no consigo activar una bobina de un relé a través de un transistor 547c. La alimentación del micro es a través de un 7805, incluso probé con un 7806 pero solo consigo 2v escasos. También probé cambiando el Pic por uno nuevo y me sucede lo mismo. Todas las patillas q no uso las conecto a través de una resistencia de 10K a 5v, realmente no se q más puedo intentar, no se cual puede ser mi error y por que no me salen 5v, posiblemente tenga una fácil solución pero yo ahora mismo no la encuentro, agradecería cualquier opinión que me pudieseis dar, muchas gracias a todos, buenísimo este foro...
-
¿Por qué no adjuntas el esquema de lo que planteas y podemos ver mejor que te está pasando?
-
Así es como tengo el circuito conectado en el protoboard. Configurando RA3 como entrada, RB0 y RB1 como salidas. Cuando en la entrada RA3=1 en la salida RB0=0 y RB1=1. Cuando en la entrada RA3=0 en la salida RB0=1 y RB1=0. Es simplemente para poder testear las salidas del Pic ya q me daba problemas con un programa mayor que tengo OK para controlar la apertura y cierre de un portal automático. Muchas gracias..
-
Puedes poner el codigo que hiciste??
-
Si amigo, debes indicar que compilador estas utilizando, cristal y muy muy importante el codigo para que entre todos podamos ayudarte :mrgreen:
-
no pongas las patillas sin usar a +5v, ponlas como salida y en estado 0. Y luego pon un simple programa de el pin puesto a 1 y comprueba que voltaje te da sin conectar nada.
-
Hola de nuevo amigos; gracias por vuestro interés, os dejo el programa que hice en el Mplab configurando el pic todo con salidas como me propuso MerLiNz, a excepción de la patilla que utilizo como entrada, que en este caso viene siendo RA3 , y desconectando los 5v que aplicaba a las patillas que no utilizaba mediante resistencias de 10k, el problema persiste sacandome una tensión menor de 2v en las salidas en vez de los 5v que debería suministrar. También deciros que utilizo el Mpasm y para quemar el PicProgramer utilizando el circuito Micropic trainer. Os dejo los datos del programa;
list p=16f84a
list c=132
;=========================================================================================================
; Configuracion Bits
;=========================================================================================================
_CP_ON EQU H'000F'
_CP_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_PWRTE_OFF EQU H'3FFF'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_LP_OSC EQU H'3FFC'
_XT_OSC EQU H'3FFD'
_HS_OSC EQU H'3FFE'
_RC_OSC EQU H'3FFF'
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
porta equ 5
trisa equ 5
portb equ 6
trisb equ 6
status equ 3
z equ 02h
RETARDO equ 0dh
TIEMPO equ 0eh
COMPARAR equ 0fh
org 0
goto inicio
org 5
inicio bsf status,5 ; 0 = Salidas
movlw b'00001000' ; 1 = Entradas
movwf trisa
movlw b'00000000'
movwf trisb
bcf status,5
ini clrf portb
btfss porta,3
goto cero
goto uno
uno movlw b'00000001'
movwf portb
goto ini
cero movlw b'00000010'
movwf portb
goto ini
end
-
el fallo lo tienes aqui...
porta equ 5
trisa equ 5
portb equ 6
trisb equ 6
deberia de ser
porta equ 5
trisa equ 85h
portb equ 6
trisb equ 86h
estabas definiendo con el mismo valor de registro los trisx de los portx, mira el datasheet
-
De acuerdo contigo ppyote, aún así las salidas continúan a menos de 2v configurando portx y trisx como tú dices..., una pregunta que quiero haceros es si alguien midió las salidas de un 16f84a con un polímetro alguna vez, sigo diciendo que no veo el problema y maldita ceguera la mia...
-
Alguna vez me ha pasado que las pilas del tester estaban bastante descargadas y éste hacía medidas incorrectas. Supongo que la alimentación del PIC es correcta, 5V no ?
Un saludo.
-
Si...!!!, la alimentación del Pic es la correcta, 5v exactos a través de un 7805 y comprobados con 2 testers diferentes, igualmente en las salidas, osea que descarto la posibilidad de fallo en las pilas del tester, os dejo otra fotografía del circuito montado por si sirve de algo... De nuevo muchas gracias a todos!!!
-
Amigo no veo en la imagen si los extremos de los condensadores del cristal estan a 0V :?
Y otra cosa probaste la continuidad desde los pines de alimentacion del pic a los terminales + y - de la fuente?
No vaya a ser un cable roto o falso contacto :mrgreen:
Saludos
-
Si, los condensadore están correctamente conectados entre el oscilador y v, y el pic está alimentado correctamente en sus terminales. Gracias RALF2
-
En la respuesta anterior me refería a 0v para los condensadores, solo dejé escrito "v" y puede dar lugar a confusión, disculpen!!!
-
Has probado de conectar las resistencias de pull-up del puerto b, o lo que es lo mismo añade dos resistencias a +5 v a esos pines del puerto B que supongo son las salidas.
El puerto B es de colector abierto (al aire) por lo tanto si no pones una carga no te dará ninguna señal.
Creo que van por ahí los tiros.
Saludos
-
no tienes puesto una resistencia pullup en el pin mclr?
-
Nada, continúa todo de igual forma, además q antes de colocar las pull-up en las salidas le tenía conectado un transistor, el cual no daba movido el relé al que estaba conectado, la verdad es que no se por donde puedo atacar este problema...
-
prueba asi....
inicio bsf status,5 ; 0 = Salidas
movlw b'00001000' ; 1 = Entradas
movwf trisa
movlw b'00000000'
movwf trisb
bcf status,5
clrf portb
ini btfss porta,3
goto cero
goto uno
uno movlw b'00000001'
movwf portb
goto ini
cero movlw b'00000010'
movwf portb
goto ini
cuando vas de vuelta a la linea ini.... limpias el puerto b.... cosa que no debes hacer.... deberias de limpiar el puerto antes de entra en en el bucle uque se produce con los goto ini....
si estas encendiendo y apagando las 2 salidas b0 y b1 lo que conseguiras es una especie de modulacion por pulsos, la cual reducira tu voltaje de salida....
-
BINGO!!!, salidas próximas a 5v, ya pude hacer actuar un relé a través de un transistor y todo funcionando como cabría esperar. Infinitas gracias al señor "ppyote" por darse cuenta de mi error de programación cuando yo estaba totalmente volcado en el protoboard pensando que algún fallo en el conexionado me daba ese problema. Eliminé directamente el "clrf portb" y perfecto, tendré más cuidado de donde lo coloco la próxima vez, de los errores se aprende. Un gran día hoy la verdad, ahora a modificar el programa del portal y a instalar todo. Otra vez gracias a todo el mundo, grande este foro!!!
-
me alegro que te funcione
un saludo