CAPACIMETRO CON PIC 16F84
Un capacímetro con los mismos principios básicos, se presentó en Nueva Revista Electrónica de marzo de 1978, y no menos de 13 CYS de lógica discreta. Véase el CI
Hoy podemos construir la capacímetro con un solo IC, el microcontrolador PIC16F84, por ejemplo, y un pequeño programa embebido en su memoria.
Capacímetro
Por supuesto, no podemos compararlo con una HP por $ 5000, 00 o algo, pero le garantizo que cuando no se tiene que romper toda una gran rama en el banco o en el campo.
Mide desde 9999 hasta 5NF UF con un promedio de error <2% en comparación con un Minipa, suficiente para los trabajos de mantenimiento, ya que la mayoría de los condensadores de diversos dispositivos electrónicos están en el radio, especialmente con electrolítico tolerancia de hasta el 20%
PROGRAMACION EN ENSAMBLADOR (ASM):
;Esquema 2 ( display K comun ) ;10/09/2003 CAPACIMETRO 5n a 9999 microF ; COLOCAR RESISTOR DE 1K2 NO PINO 3 ( RA4 ) PARA +5V ; Ligar resistor do ponto decimal ao +5 ;Segmentos no portb errorlevel -302 list p=16F84A radix dec include __config _XT_OSC & _CP_OFF & _WDT_OFF & _PWRTE_ON W2 equ 12 ST2 equ 13 milhar equ 14 centena equ 15 dezena equ 16 unidade equ 17 qual equ 18 tempo equ 19 dt1 equ 20 espera equ 21 org 0 goto inicio org 4 SalvaWeST: movwf W2 movf STATUS,W movwf ST2 TestaFlags: btfsc INTCON,T0IF goto INT_TIMER btfsc INTCON,RBIF goto INT_EXTERNA Fim_Int: movf ST2,W movwf STATUS movf W2,W retfie INT_TIMER: bcf STATUS,RP0 incf qual,f movf qual,w indexa: addwf PCL,f nop goto dispM goto dispC goto dispD goto dispU movlw 1 movwf qual dispM: bsf PORTA,1 bsf PORTA,2 bsf PORTA,3 bsf PORTA,4 movf milhar,w call segmento movwf PORTB bcf PORTA,2 bcf INTCON,T0IF goto Fim_Int dispC: bsf PORTA,1 bsf PORTA,2 bsf PORTA,3 bsf PORTA,4 movf centena,w call segmento movwf PORTB bcf PORTA,1 bcf INTCON,T0IF goto Fim_Int dispD: bsf PORTA,1 bsf PORTA,2 bsf PORTA,3 bsf PORTA,4 movf dezena,w call segmento movwf PORTB bcf PORTA,4 bcf INTCON,T0IF goto Fim_Int dispU: bsf PORTA,1 bsf PORTA,2 bsf PORTA,3 bsf PORTA,4 movf unidade,w call segmento movwf PORTB bcf PORTA,3 bcf INTCON,T0IF goto Fim_Int segmento: addwf PCL,f retlw B'01111111' ;0 retlw B'00001101' ;1 retlw B'10110111' ;2 retlw B'10011111' ;3 retlw B'11001101' ;4 retlw B'11011011' ;5 retlw B'11111011' ;6 retlw B'00001111' ;7 retlw B'11111111' ;8 retlw B'11011111' ;9 retlw B'11110010' ; retlw B'10100000' ; retlw B'10111000' ; retlw B'10101000' ; retlw B'00000000' ; apaga segmentos call erro INT_EXTERNA: incf unidade,f movlw 10 subwf unidade,w btfss STATUS,Z goto fim_ext clrf unidade incf dezena,f movlw 10 subwf dezena,w btfss STATUS,Z goto fim_ext clrf dezena incf centena,f movlw 10 subwf centena,w btfss STATUS,Z goto fim_ext clrf centena incf milhar,f movlw 10 subwf milhar,w btfss STATUS,Z goto fim_ext clrf milhar fim_ext: bcf INTCON,RBIF goto Fim_Int inicio: clrf PORTA clrf PORTB bcf PORTA,1 bcf PORTA,2 bcf PORTA,3 bcf PORTA,4 clrf INTCON clrf TMR0 bsf STATUS,RP0 movlw B'00000001' movwf TRISB movlw B'11100000' movwf TRISA movlw B'10010011' movwf OPTION_REG bcf STATUS,RP0 Reset: clrf milhar clrf centena clrf dezena clrf unidade clrf qual bcf INTCON,T0IF bcf INTCON,RBIF bsf INTCON,T0IE bsf INTCON,RBIE bsf INTCON,GIE ;--------- pulso bsf PORTA,0 ; descarga do capacitor call ms250 ; espera call ms250 bcf PORTA,0 ; inicia carga do capacitor loop: btfss PORTB,0 ; bsf INTCON,RBIF ; conta durante tempo de carga do capacitor ;------------------OVERFLOW (9999)-------------------------- btfsc PORTB,0 ;*** testa fim da medição do capacitor goto off ;*** movf milhar,w addwf centena,w ; SOMA addwf dezena,w ; " addwf unidade,w ; " xorlw 36 ; 9+9+9+9 btfss STATUS,2 goto loop erro movlw 10 movwf milhar movlw 11 movwf centena movlw 11 movwf dezena movlw 12 movwf unidade off movlw 1 ;(+- 1 min.) movwf espera loop2 call ms250 incfsz espera,1 goto loop2 movlw 10 movwf milhar movlw 11 movwf centena movlw 12 movwf dezena movlw 13 movwf unidade movlw 240 ; (+- 4 seg.) movwf espera loop3 call ms250 incfsz espera,1 goto loop3 ;------------------------------------------------ ;Preparando-se para dormir bsf STATUS,RP0 movlw B'11111111' movwf TRISA movwf TRISB bcf STATUS,RP0 bcf INTCON,GIE sleep ;-------------------------- ms250: movlw 250 movwf tempo ms250a: movlw 248 movwf dt1 ms250b: nop decfsz dt1,1 goto ms250b decfsz tempo,1 goto ms250a return END
Para la programación, crear un fichero de texto con extensión .hex y copiar el contenido hexadecimal dentro del fichero
CONTENIDO DEL FICHERO HEX:
:020000006D2869 :080008008C0003088D000B19A8 :100010000F280B1853280D0883000C0809008312C1 :10002000920A1208820700001A2824282E2838284D :100030000130920085140515851505160E0842201D :10004000860005110B110B2885140515851505165D :100050000F084220860085100B110B28851405150A :100060008515051610084220860005120B110B2875 :100070008514051585150516110842208600851181 :100080000B110B2882077F340D34B7349F34CD34E5 :10009000DB34FB340F34FF34DF34F234A034B834B3 :1000A000A83400349620910A0A301102031D6B28EF :1000B0009101900A0A301002031D6B2890018F0AEB :1000C0000A300F02031D6B288F018E0A0A300E02C0 :1000D000031D6B288E010B100B28850186018510EE :1000E0000511851105128B018101831601308600EF :1000F000E03085009330810083128E018F019001E2 :10010000910192010B110B108B168B158B17051497 :10011000B720B7200510061C0B1406189E280E08E1 :100120000F0710071107243A031D8B280A308E0091 :100130000B308F000B3090000C3091000130950097 :10014000B720950FA0280A308E000B308F000C309E :1001500090000D309100F0309500B720950FAD283C :100160008316FF308500860083128B136300FA30FC :100170009300F83094000000940BBB28930BB9282F :02018000080075 :02400E00F13F80 :00000001FF
Alimentación:
Bat de 9 V
Goma de borrar o de 9 V
Operación:
Colocar el condensador terminales, y pulse el botón de prueba.
Para electrolítico, observe la polaridad.
Calibración:
POTS multivoltas.
Tema 1: 5 nF a 9999 nF (470 nF condensador de referencia de 1%) (bote de 470 K).
Tema 2: 1 UF a 99,9 UF (47 UF condensador de referencia de 1%) (DE MACETA 1K).
Tema 3: 100 UF a 9999 UF (4700 UF condensador de referencia del 1%) (DE MACETA 200R).
1er Lugar en referencia a las terminales de condensador.
2 Gire la olla multivoltas correspondiente a la indicación correcta.
Nota:
Si el ensamblador tiene opciones para ajustar las resistencias, puede sustituir los potenciómetros en serie con la resistencia, por una sola resistencia, lo que hará más compacto el circuito.
Al probar los condensadores, no olvides descargarlos antes.
Fuente: http://br.geocities.com/eronpaganucci/cappic.htm
Si estás interesado en como se programa el pic, busca en esta web el “Curso de programación PICs” donde explicamos paso a paso, con circuitos prácticos, como programar el pic 16f84. del cual os dejo el primer link: http://www.pesadillo.com/pesadillo/?p=3211
Programas para la programación: http://www.pesadillo.com/pesadillo/?p=3090
Tuitear 11.996 Veces leído 7 comentarios |
1 noviembre 2008 en Electronica | tags: Circuitos electrónicos, Electronica |
Buenos días!
Largo buscaba un Capacimetro, con la gama de 1uF 1500uF, felicitaciones
Por diseño. Monté el circuito, sin embargo no puedo escribir el microcontrolador con el archivo txt. Podría por favor enviarme el archivo en hexadecimal que se puede utilizar en microbrn
Como indica en el artículo. Creas un fichero con extensión .txt y lo guardas como .HEX. No olvides que no ha de haber ningún espacio al final del texto. prueba.txt -> prueba.HEX
Buenas amigo
serias tan amable de publicar el pcb del proyecto porfavor
gracias
POR FAVOR ME PODRIAS ENVIAR EL PROGRAMA ASM DEL CAPACIMETRO CON PIC 16F84A TE ESTARE MUY AGRADECIDO
Hola, disculpa las molestias. He reactivado el modulo correspondiente a codigo y ya se puede copiar y pegar el contenido de la programación.
Si alguien se ha animado… que me pase el PCB y lo publicamos.
hola , tengo un problema para compilar el archivo que cree que me pueda estar pasando , le agradesco toda su ayuda