Autor Tema: Medicion de voltaje de baterias  (Leído 2450 veces)

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

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Medicion de voltaje de baterias
« en: 13 de Marzo de 2009, 17:07:50 »
caballeros estoy trabajando en un proyecto que mide la tencion de unas baterias cargadas por unos paneles solares.
la pruevas las estoy haciendo con una fuente de voltaje variable hasta 25 vdc.
acondiciono las señales de voltaje para que las entrada del pic rao sea maximo 1871 mV o sea cuando las baterias tengan 24.5 voltios.
el  voltaje minino que deben tener  las baterias es de 21.5 voltios lo cual la entrada del rao es de 1641mV.

cuando las Baterias lleguen al voltaje max o al volt min el pic esta programado para realizar tareas .

el problema es que las tareas no se estan realizando en los voltajes especificos a veces se activa a los 23000mV aveces no hace nada.... lo mismo con el voltaje minimo..

para ver que se puede detectar de este problema,sera el conversor analogo digital----

saludos y gracias

 


 

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 631
Re: Medicion de voltaje de baterias
« Respuesta #1 en: 13 de Marzo de 2009, 19:24:49 »
Para que podamos ayudarte lo mejor es que subas al código de programa y el esquemático del circuito. Ya que el problema puede ser tanto de hardware como de software.

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Medicion de voltaje de baterias
« Respuesta #2 en: 14 de Marzo de 2009, 19:21:58 »
aqui pongo el esquema de mas o menos el circuito acondicionador y el programa ASM.


Código: ASM
  1. CONVERSIONANALOGODIGITAL
  2.     BSF      STATUS,5
  3.     MOVLW    B'00001110'        ;RA0 ANALOGO JUSTIFICACION LOS OCHO 8 BITS
  4. ;DE ADRESH Y DOS BITS DE ADRESL
  5.     MOVWF    ADCON1
  6.     BCF          STATUS,5
  7. EEE MOVLW    B'10000001'  fOSC/32
  8.     MOVWF    ADCON0
  9.     BCF      PIR1,ADIF
  10. .
  11.     BSF      ADCON0,GODONE
  12.     CALL     PDelayi
  13. EL  BTFSS    PIR1,ADIF
  14.     GOTO     EL
  15.     BSF      STATUS,5
  16.     BCF      STATUS,6
  17.     MOVF     ADRESL,0    ;PARTE BAJA DE LA CONVERSION
  18.     BCF      STATUS,5
  19.         MOVWF    RESULT_L
  20.     MOVF     ADRESH,0    ;PARTE ALTA    DE LA CONVERSION
  21.     MOVWF    RESULT_H        
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. COMPARACION ;comparacion del voltaje de la bateria con 21600mV=21.6V.
  29.         MOVLW   H'54';21600
  30.         MOVWF   V_TRESQ_ALTO
  31.         MOVLW   H'60'
  32.         MOVWF   V_TRESQ_BAJO
  33.        
  34.         MOVF    V_TRESQ_BAJO,0 ;resta el voltaje de la bateria_L con el Voltaje de referencia_L
  35.         SUBWF   RESULT_L,1
  36.         BTFSS   STATUS,0
  37.         GOTO    FFF
  38.         MOVF    V_TRESQ_ALTO,0 ;resta el voltaje de la bateria_H con el Voltaje de referencia_H
  39.         SUBWF   RESULT_H,1
  40.         BTFSS   STATUS,0
  41.         GOTO    EEPM
  42. ;BATERIA ;sin el voltaje esta por encima de 21.6V la bateria esta activada pa suministra energia
  43.         BSF     PORTB,0 ;rele de BATERIA
  44.         BTFSC   PORTB,1 ;pregunta por salida de voltaje del inversor a 120Vac
  45.         GOTO    EEPM
  46.         BTFSC   PORTB,6 ;pregunta por salida de voltaje del inversor a 120Vac,si alguna de las salidas
  47.         GOTO    EEPM    ;rb0,rb6 esta desactivada se bebe suministrar energia con las por empresa de energia.
  48.         BSF     PORTB,2 ;señalizacion bateria activa
  49.         BSF     PORTB,5 ;
  50.         CALL    RETARDO_5MI
  51.         CALL    RETARDO_5MI
  52.         CALL    RETARDO_5MI
  53.         CALL    RETARDO_5MI
  54.         CALL    RETARDO_5MI
  55.         GOTO    COROSO
  56.  
  57.  
  58.  
  59.  
  60. FFF     MOVLW   .1  ;seguir comprobando que el volteje de la bateria esta bajo de 21.6V
  61.         SUBWF   RESULT_H,1
  62.         MOVF    V_TRESQ_ALTO,0
  63.         SUBWF   RESULT_H,1
  64.         BTFSS   STATUS,0
  65.         GOTO    EEPM    ;esta instruccion se ejecuta si el volatje esta por debajo de 21.6V
  66.         BSF     PORTB,0 ;RELE BATERIA
  67.         BTFSC   PORTB,1 ;pregunta por salida de voltaje del inversor a 120Vac
  68.         GOTO    EEPM
  69.         BTFSC   PORTB,6 ;pregunta por salida de voltaje del inversor a 120Vac,si alguna de las salidas
  70.         GOTO    EEPM    ;rb0,rb6 esta desactivada se bebe suministrar energia con las por empresa de energia.
  71.         BSF             PORTB,2 ;ALARMA BATERIA
  72.         BSF             PORTB,5
  73.         CALL    RETARDO_5MI
  74.         CALL    RETARDO_5MI
  75.         CALL    RETARDO_5MI
  76.         CALL    RETARDO_5MI
  77.         CALL    RETARDO_5MI
  78.         GOTO    COROSO
  79.  
  80.        
  81.  
  82. EEPM    ;este segmento de programa verifica que las baterias esten con un voltaje mayor a 24V
  83.         ;para poder trabajar con ellas.
  84.         BCF             PORTB,0 ;desactiva rele de bateria
  85.         BCF             PORTB,2
  86.         BCF             PORTB,5
  87.         CALL    RETARDO
  88.         CALL    RETARDO
  89.         CALL    RETARDO
  90.         CALL    RETARDO
  91.         CALL    RETARDO
  92.         BSF     PORTB,3 ;activacion de RELE EEPM
  93.         BSF     PORTB,4 ;señalizacion ALARMA EEPM
  94.  
  95. EEEEE   ;este segmento de programa verifica que las baterias esten con un voltaje mayor a 24V
  96.         ;para poder trabajar con ellas.
  97.        
  98.         BCF     PIR1,ADIF
  99.         BSF     ADCON0,GODONE
  100.         CALL    PDelayi
  101. ELL     BTFSS  PIR1,ADIF
  102.         GOTO    ELL
  103.         BSF     STATUS,5
  104.         BCF     STATUS,6
  105.         MOVF    ADRESL,0    ;PARTE BAJA DE LA CONVERSION
  106.         BCF     STATUS,5
  107.         MOVWF   RESULT_L
  108.         MOVF    ADRESH,0    ;PARTE ALTA    DE LA CONVERSION
  109.         MOVWF   RESULT_H  
  110.  
  111.  
  112.         MOVLW   H'5D'  
  113.         MOVWF   V_24_5_H    ;24V
  114.         MOVLW   H'C0'
  115.         MOVWF   V_24_5_L
  116.  
  117.         MOVF    RESULT_L,0     
  118.         SUBWF   V_24_5_L,1
  119.         BTFSS   STATUS,0
  120.         GOTO    F2
  121.         MOVF    RESULT_H,0
  122.         SUBWF   V_24_5_H,1
  123.         BTFSS   STATUS,0
  124.         GOTO    COROSO ;esta instruccion se ejecuta cuando el voltaje esta bien con 24V
  125.         BSF     PORTB,5
  126.         CALL    RETARDO_5MI
  127.         CALL    RETARDO_5MI
  128.         CALL    RETARDO_5MI
  129.         CALL    RETARDO_5MI
  130.         CALL    RETARDO_5MI    
  131.         GOTO    EEPM    ;hasta que el voltaje no supere los 24vdc este seguira ejecutandose
  132.                         ;preguntando si las voltajaje de la vaterias ha llegado a 24V .
  133. F2      MOVLW   .1
  134.         SUBWF   V_24_5_H,1
  135.         MOVF    RESULT_H,0
  136.         SUBWF   V_24_5_H,1
  137.         BTFSS   STATUS,0
  138.         GOTO    COROSO    ;esta instruccion se ejecuta cuando el voltaje esta bien con 24V
  139.         BSF             PORTB,5
  140.         CALL    RETARDO_5MI
  141.         CALL    RETARDO_5MI
  142.         CALL    RETARDO_5MI
  143.         CALL    RETARDO_5MI
  144.         CALL    RETARDO_5MI
  145.         GOTO    EEPM    ;hasta que el voltaje no supere los 24vdc este seguira ejecutandose
  146.                         ;preguntando si las voltajaje de la vaterias ha llegado a 24V .
  147. END

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 631
Re: Medicion de voltaje de baterias
« Respuesta #3 en: 14 de Marzo de 2009, 20:23:43 »
En el circuito parece que está correcto, lo único que tengo para decir es que no se si el mclr lo tienes conectado a vcc.
Creo que en las hojas de datos de microchip aconsejan que la impedancia de entrada al conversor analógico digital no sea mayor a 2.5Kohm
Con respecto al programa, no está completo.
Si puedes coloca el programa completo, para poder compilarlo y simularlo
Otra de las cosas que debes tener en cuenta es que tan precisa es tu fuente con la que generas la señal para ingresar al conversor. Ya que estás trabajando en un rango muy estrecho de voltajes (de 1649mv a 1832mv), hay alrededor de tan solo 200mv, si tu fuente tiene un riple mayor no vas a lograr realizar bien las pruebas. Te aconsejaría realizar las pruebas con una batería de 9 volts por ejemplo(para eliminar todo riple que pueda existir en una fuente que se alimenta de la red), lo que tienes que hacer es recalcular el divisor resistivo, y luego cuando ves que funciona pruebas con la señal real.
« Última modificación: 14 de Marzo de 2009, 20:31:09 por pablomanieri »

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Medicion de voltaje de baterias
« Respuesta #4 en: 15 de Marzo de 2009, 12:59:04 »
aqui esta la parte que completa el programa...los dos segmentos hacen el programa completo..
para ver si me pueden aconsejar sobre los valores (R,C,ZENER,POTENCIOMETRO) del  circuito acondicinador.. o me pueden sugerir otro circuito ocndicionador de señal para mejor presicion y resultado...

saludos y gracias...


Código: ASM
  1. LIST     P=16F873A
  2.     #INCLUDE<P16F873A.INC>
  3.  
  4. RESULT_H                EQU    22
  5. RESULT_L                EQU    23
  6. V_TRESQ_BAJO    EQU    20
  7. V_TRESQ_ALTO    EQU    21
  8. V_24_5_H        EQU    24
  9. V_24_5_L        EQU    25
  10. PDel2               EQU    26
  11. MIL             EQU    27
  12. CIEN_L          EQU    28
  13. CENTENAS            EQU    29
  14. UNIDADES        EQU    2A
  15. DECENAS         EQU    2B
  16. DIEZ            EQU    2C
  17. PDel0           EQU    2D
  18. PDel1           EQU    2E
  19. ;BITS CONVERSOR
  20. ADIF                    EQU    6    
  21.  
  22. GODONE                  EQU    2
  23. ADON                    EQU    0
  24. ADFM                    EQU    7
  25. C                       EQU    0
  26.  
  27.  
  28.         ORG    0
  29.         GOTO INICIO
  30.         ORG 05
  31.  
  32.  
  33.  
  34. RETARDO         ; Code generated by PDEL  ver 1.0  on 30/08/2008 at 12:08:52
  35. ; Description: Waits 1000000 cycles
  36. ;-------------------------------------------------------------
  37. PDelay  movlw     .14       ; 1 set number of repetitions (C)
  38.         movwf     PDel0     ; 1 |
  39. PLoop0A movlw     .72       ; 1 set number of repetitions (B)
  40.         movwf     PDel1     ; 1 |
  41. PLoop1A movlw     .247      ; 1 set number of repetitions (A)
  42.         movwf     PDel2     ; 1 |
  43. PLoop2A clrwdt              ; 1 clear watchdog
  44.         decfsz    PDel2, 1  ; 1 + (1) is the time over? (A)
  45.         goto      PLoop2A    ; 2 no, loop
  46.         decfsz    PDel1,  1 ; 1 + (1) is the time over? (B)
  47.         goto      PLoop1A    ; 2 no, loop
  48.         decfsz    PDel0,  1 ; 1 + (1) is the time over? (C)
  49.         goto      PLoop0A    ; 2 no, loop
  50. PDelL1A goto      PDelL2A         ; 2 cycles delay
  51. PDelL2A clrwdt              ; 1 cycle delay
  52.         return              ; 2+2 Done
  53.  
  54.  
  55.  
  56. RETARDO_5MI
  57. ; Code generated by PDEL  ver 1.0  on 06/09/2008 at 12:25:22 AM
  58. ; Description: Waits 60000000 cycles
  59. ;-------------------------------------------------------------
  60. ;PDelay movlw     .191      ; 1 set number of repetitions (C)
  61.         movwf     PDel0     ; 1 |
  62. PLoop0  movlw     .182      ; 1 set number of repetitions (B)
  63.         movwf     PDel1     ; 1 |
  64. PLoop1  movlw     .82       ; 1 set number of repetitions (A)
  65.         movwf     PDel2     ; 1 |
  66. PLoop2  clrwdt              ; 1 clear watchdog
  67. PDelL1  goto PDelL2         ; 2 cycles delay
  68. PDelL2  goto PDelL3         ; 2 cycles delay
  69. PDelL3  goto PDelL4         ; 2 cycles delay
  70. PDelL4  goto PDelL5         ; 2 cycles delay
  71. PDelL5  goto PDelL6         ; 2 cycles delay
  72. PDelL6  goto PDelL7         ; 2 cycles delay
  73. PDelL7  goto PDelL8         ; 2 cycles delay
  74. PDelL8  goto PDelL9         ; 2 cycles delay
  75. PDelL9  clrwdt              ; 1 cycle delay
  76.         decfsz    PDel2, 1  ; 1 + (1) is the time over? (A)
  77.         goto      PLoop2    ; 2 no, loop
  78.         decfsz    PDel1,  1 ; 1 + (1) is the time over? (B)
  79.         goto      PLoop1    ; 2 no, loop
  80.         decfsz    PDel0,  1 ; 1 + (1) is the time over? (C)
  81.         goto      PLoop0    ; 2 no, loop
  82. PDelL10 goto PDelL11        ; 2 cycles delay
  83. PDelL11 goto PDelL12        ; 2 cycles delay
  84. PDelL12 goto PDelL13        ; 2 cycles delay
  85. PDelL13 goto PDelL14        ; 2 cycles delay
  86. PDelL14 goto PDelL15        ; 2 cycles delay
  87. PDelL15 goto PDelL16        ; 2 cycles delay
  88. PDelL16 goto PDelL17        ; 2 cycles delay
  89. PDelL17 goto PDelL18        ; 2 cycles delay
  90. PDelL18 goto PDelL19        ; 2 cycles delay
  91. PDelL19 clrwdt              ; 1 cycle delay
  92.         return              ; 2+2 Done
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. ;  Code generated by PDEL  ver 1.0  on 02/07/2007 at 06:21:35 p.m.
  107. ; Description: Waits 1000 cycles
  108. ;-------------------------------------------------------------
  109. PDelayi movlw     .248      ; 1 set number of repetitions
  110.         movwf     PDel0     ; 1 |
  111. PLoopR  clrwdt              ; 1 clear watchdog
  112.         decfsz    PDel0, 1  ; 1 + (1) is the time over?
  113.         goto      PLoopR    ; 2 no, loop
  114. PDelLA  goto      PDelLB    ; 2 cycles delay
  115. PDelLB  clrwdt              ; 1 cycle delay
  116.         return              ; 2+2 Done    
  117.  
  118.  
  119.  
  120.  
  121.  
  122. INICIO
  123.         BSF     STATUS,5
  124.         BCF     STATUS,6
  125.         MOVLW   B'00000010'
  126.         MOVWF   PORTB
  127.         CLRF    PORTC
  128.         MOVLW   B'00000001'
  129.         MOVWF   PORTA
  130.         BCF     STATUS,5
  131.  
  132.         BSF     STATUS,5
  133.         BCF     STATUS,6
  134. COROSO    
  135.  
  136.         BCF     STATUS,5
  137.         BCF     PORTB,3
  138.         BCF     PORTB,4
  139.         CALL    RETARDO
  140.         BCF     PORTB,5
  141.         CALL    RETARDO
  142.         CALL    RETARDO

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6743
    • Micros-Designs
Re: Medicion de voltaje de baterias
« Respuesta #5 en: 15 de Marzo de 2009, 14:36:01 »
Creo que con el potenciómetro te va ser muy difícil simular el ese rango de tensiones. Puedes acondicionarlo colocando resistencias en serie, y de esa manera reducir el rango de excursión del potenciómetro.
También es recomendable utilizar Vref+ y Vref- del PIC (Por ejemplo: Vref- = 1.5V, Vref+ = 2 V, puedes usar solo 8 bits del conversor), por el pequeño rango de tensiones.
No contesto mensajes privados, las consultas en el foro

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Medicion de voltaje de baterias
« Respuesta #6 en: 20 de Marzo de 2009, 16:07:32 »
caballero tengo un programa en cuestion
y creo que el problema es resolucion,ruido etc..
para variar utilice una bateria de 9v para evitar ruidos,riples pero el problema sigue.
los voltajes a consideracion son 1680mV Y 1820mV. aveces finciona a veces no.. a veces se activa a 1530mV .. aveces se activa en 1700mV ... aveces no se activa..
sigue con el problema..

saludos y gracias

Desconectado miltonmc

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 293
Re: Medicion de voltaje de baterias
« Respuesta #7 en: 21 de Marzo de 2009, 23:24:25 »
saludos a todos
hola  microcom  yo creo que cuando se va a medir y luego comparar una lectura del ADC.
es bueno leerlo varias veces e ir sumándolos  en una variable
 y luego dividir esa variable entre la cantidad de medidas que tomaste asi no hay tantas diferencias de lecturas del adc
gracias

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Medicion de voltaje de baterias
« Respuesta #8 en: 24 de Marzo de 2009, 20:56:36 »
saludos a todos
hola  microcom  yo creo que cuando se va a medir y luego comparar una lectura del ADC.
es bueno leerlo varias veces e ir sumándolos  en una variable
 y luego dividir esa variable entre la cantidad de medidas que tomaste asi no hay tantas diferencias de lecturas del adc
gracias


bueno compa provare tu concejo.. saludos y gracias

Desconectado uhsspa

  • PIC10
  • *
  • Mensajes: 37
    • Una recopilación de Circuitos de internet de varias páginas:
Re: Medicion de voltaje de baterias
« Respuesta #9 en: 24 de Marzo de 2009, 21:03:24 »
al parecer tu circuito controla señales de alta tension... por medio de una bateria recargable.. muy buen proyecto te felicito.. voy a averiguar de tu tema para poder aortar algo
La humildad conlleva a la Grandeza....  http://sapiens.ya.com/yllapa   (varios circuitos de internet)

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Medicion de voltaje de baterias
« Respuesta #10 en: 27 de Marzo de 2009, 20:53:41 »
saludos a todos
hola  microcom  yo creo que cuando se va a medir y luego comparar una lectura del ADC.
es bueno leerlo varias veces e ir sumándolos  en una variable
 y luego dividir esa variable entre la cantidad de medidas que tomaste asi no hay tantas diferencias de lecturas del adc
gracias



bueno compa a mejorado las mediciones y comparaciones...sumando 4 valores y dividiendo entre 4 para despues comparar...
los errores de variacion son minimos pero seguimos ajustandolos..

saludos y gracias