pic 12f675 medir el suministro vdd con ADIN

-1

He estado buscando en Google y experimentando toda la noche, no podría hacer que funcione.

necesito monitorear el suministro de foto 12f675 VDD, logré leer un valor de 4.2 voltios, ¡Pero si el voltaje del vdd cambia, sigue leyendo igual a 4.2 voltios! El suministro proviene de la batería de ión de litio. Los cables de conexión se hicieron directamente sin ningún componente externo.

la referencia de voltaje es a través de VDD

ADCON0 = %10001101 ' A/D Converter ON
ANSEL = %00110010 ' Set Analog register 3
Adin_Res    10                  ' Set the resolution to 10
Adin_Tad    FRC                 ' Choose the RC osc for ADC samples
Adin_Stime  100                 ' Allow 100us for charge time

Dim Raw         As Word
Dim Value       As Word
Dim Volts       As Byte
Dim Millivolts  As Word

 INTCON = 0
 Output GPIO.2           'led
 Input GPIO.4            'adin
 Output GPIO.5           'serial

 While 1=1
      Raw = ADIn 3
      Value = 835 *(Raw / 10)           ' Quantasize the result
        Volts = Value / 10000
        Millivolts = (Value // 10000) / 100<
      SerOut GPIO.5, 84, [" ",Dec1 Volts, ".",Dec2 Millivolts]     ' Display the RAW data
      SerOut GPIO.5, 84, ["-",#Raw]     ' Display the RAW data
    High GPIO.2
    DelayMS 500
    Low GPIO.2
    DelayMS 500
 Wend

¿Algún consejo?

    
pregunta tamadver

2 respuestas

2

El problema es que no está usando una referencia de voltaje externo.
Está utilizando Vdd como referencia de voltaje, lo cual es incorrecto, ya que cambia a medida que se trata de una batería.

Está utilizando una entrada analógica y un ADC interno. ADC le da un resultado relativo a Vref (que es Vdd en su caso). Usted SIEMPRE obtendrá el mismo valor binario, sin importar qué es Vdd.

Tiene que usar el IC del indicador de batería, o usar la referencia de voltaje (por ejemplo, 1.024V), utilícelo como Vref para ADC interno. Y luego haga un divisor de voltaje para el voltaje de la batería, digamos 1: 5 (por lo que será menor a 1.024 V todo el tiempo) y mida este voltaje.

O puede usar un regulador de voltaje LDO de 3.3V, el PIC será alimentado por 3.3V estable. Así Vdd será estable. Luego usará el divisor de voltaje de la batetry diga 1: 2 y medirá este voltaje.

ACTUALIZACIÓN:
PIC12F675 en realidad tiene referencia de voltaje interno. Puedes usarlo, tienes que habilitarlo. Esas referencias internas no son muy precisas, prepárense para eso.

ACTUALIZACIÓN2:
Parece que ADC no puede usar la referencia de voltaje interno en este PIC.

    
respondido por el Chupacabras
1

El truco estándar es tener una referencia de voltaje (interna o externa) (para un voltaje más bajo que su potencia) y medir ese voltaje, utilizando la Vcc (batería) como referencia. A partir de ese resultado, puede volver a calcular el voltaje de la batería.

Si le preocupa que la referencia externa use demasiada corriente, puede usar un pin GPIO adicional para encenderlo y apagarlo entre las medidas.

Un LM431 es un componente 'yellybean' para este propósito.

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas