Cómo obtener el voltaje de entrada del valor ADC

1

Estoy usando atmega328p para mi proyecto. Tengo que leer el voltaje de mi batería y mostrarlo en mi nube. Para eso, estoy usando ADC. Ahora estoy recibiendo el valor ADC para el voltaje de entrada aplicado. Pero necesito convertir el ADC a voltaje.

Cuando voy a la hoja de datos, observé la siguiente ecuación

Entonces, para convertir ADC, Vin=(ADC/1024)*Vref .

Pero cuando busqué en Google, encontré otra ecuación y es

Vin=(ADC/1023)*Vref

Ahora dudo que cual ecuación es usar?

Si usamos 1024, el valor de ADC será 0001 cuando la tensión de entrada sea igual a la tensión de 1LSB ( Vref/1024 ).

Si usamos 1023 (segunda ecuación), el valor de ADC será 0000 cuando la tensión de entrada sea igual a la tensión 1LSB ( Vref/1024 )

    
pregunta mcv

3 respuestas

1

Primero, permítame citar la imagen que ya tiene la respuesta: "0x000 representa tierra analógica, y 0x3FF representa la tensión de referencia seleccionada menos un LSB". Eso significaría representar la tensión de referencia Vref, se necesitaría una cuenta LSB más, por lo que el resultado sería 0x400 o 1024. Por lo tanto, una tensión igual a Vref no puede representarse como resultado, es un caso especial. Para todos los demás voltajes que estén al menos 0,5 pasos por debajo de Vref (entre 1022.5 y 1023.5), el resultado es válido.

Atmel tiene una nota de aplicación de ADC para AVR que explica cómo funciona el ADC sucesivo, y no es obvio pero ayuda a comprender cuál es el correcto. También hay muchos hilos en AVRFreaks sobre cuál es el correcto. Y armado con esa información, 1024 es correcto y no hay ningún error en la hoja de datos.

En realidad, los ADC no son perfectos, ya que los resultados pueden tener más de 1 conteo de errores y realmente no importa mucho si se usa 1023 o 1024, ya que rara vez se necesita una precisión de 1 conteo de 1024 en el Vin = Vref caso extremo de todos modos.

    
respondido por el EX-AVRFREAK
2

10 bit ADC significa que puede representar la entrada como un número del 0-1023, por lo tanto, la respuesta correcta es usar 1023, no 1024. Parece que hay un error en la hoja de datos, ya que 0x3FF es 1023, no 1024. / p>     

respondido por el Em Ka
1

cuando consideramos un ADC de n bits. Leerá la tensión de referencia como (2 ^ n - 1),

pero, cuando estamos hablando de pasos, es ((2 ^ n - 1) + 1 (y también contamos el valor cero))

ejemplo: cuando empiezas a contar algo desde "cero". si obtuviste un recuento total de, digamos 81 ... pero realmente no es 81, será 82 (incluido 0 como un valor)

por lo que en su caso, está hablando de ADC de 10 bits, por lo que ... el máximo de referencia que puede leer es como (2 ^ 10 - 1) = 1023

pero tiene pasos máximos de 1023 + 1 = 1024

así que tienes que tomar 1024 ..

    
respondido por el Satish Singupuram

Lea otras preguntas en las etiquetas