Cómo medir el voltaje de la batería desde un microcontrolador

6

Hoy tuve una entrevista, allí me preguntaron, si me daban un microcontrolador y una batería, ¿cómo se mide el nivel de voltaje? Escribe los pasos desde cero con un pseudo código.

¿Cómo se puede hacer esto?

    

2 respuestas

11

Si estaban detrás del pseudo código, entonces esa era una mala pregunta; Todo depende del microcontrolador. Probablemente le habría dado al candidato la hoja de datos del microcontrolador y observaría cómo trabaja en ese documento de 300 páginas.

De todos modos, conecte la batería a una entrada ADC (supuestos: el microcontrolador tiene ADC a bordo y el voltaje de la batería es menor que el voltaje de suministro del microcontrolador).

  1. Establezca el modo pin para ese pin en ADC
  2. Seleccione esta entrada de ADC si hay varias entradas de ADC
  3. Iniciar la conversión de ADC
  4. Espere a que finalice el indicador de conversión
  5. leer el registro ADC
  6. calcular Vbat = Vcc x (lectura de ADC) / (resolución de 2 ^ ADC)
respondido por el stevenvh
6

Creo que el problema aquí es que los microcontroladores necesitan una referencia adicional para su A / D. La referencia por defecto es la fuente de alimentación. Puede usar una referencia externa y dividir el voltaje de la batería a algo por debajo de esa referencia, pero eso pone un drenaje constante en la batería, lo que podría no ser una buena idea.

Mi respuesta sería: obtener una referencia de tipo derivación para un voltaje que sea inferior al rango de interés de la batería. Supongamos una batería de ~ 5V, y un TL431 o similar como referencia de 2.5V. Ahora mida el voltaje TL431, usando la batería como referencia. Supongamos un A / D de 10 bits (el más común), que dice N. Ahora lo sabes

N * (Battery / 1023) = 2.5

por lo tanto

Battery = 2.5 * 1023 / N

Si la corriente consumida por la referencia es un problema, cambiaría su energía de un pin de salida: no se consume energía a menos que queramos hacer la medición (que será un período muy corto).

=========================================

Ahora algunas tareas como preparación para la próxima entrevista: Usted tiene un dispositivo de 5V alimentado por USB, que tiene un microcontrolador y un sensor de temperatura LM35. ¿Cómo determinarías la temperatura? Sugerencias: ¿qué hace el LM35? Y verifique el rango de voltaje de una toma USB. (Hay una respuesta alternativa: ¿por qué el $ & ^ * ^ & no usas un sensor de temperatura digital en primer lugar?).

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas