Estoy tratando de entender las lecturas que recibo del convertidor analógico a digital (ADC).
Estoy usando un microcontrolador integrado uIceblue2 . El microcontrolador en el circuito es un 18F4550. En el manual del microcontrolador uIceblue2 dice que un rango analógico de 0 to 3.3v +/-0.8V
. Es un ADC de 10 bits.
La página 16 del manual muestra las especificaciones del voltaje analógico. enlace
EDITAR: Me di cuenta de que no estaba leyendo mi ADRESH. Así que cuando recibí 1V, mis lecturas de ADC se ubicaron en 1070 o 1090.
A continuación se muestran algunas lecturas que recibo del ADC cuando aplico un voltaje determinado a la entrada analógica. Estoy usando Docklight para leer mis resultados en decimal. Recibo salidas para cada resultado, que creo que coordina con el ADRESH y el ADRESL. El primer grupo de tres dígitos es el ADRESH y el segundo grupo de dígitos es el ADRESL.
- 0.055V - > 000 020 a 000 031
- 1V - > 001 070 a 001 090
- 2V - > 002 139 a 002 160
- 3.3V - > 003 255
- 3.4V - > 003 255
- 3.5V - > 003 255
Mis preguntas son:
¿Por qué hay tanta variabilidad en el rango del voltaje? Pensé que la resolución de 10 bits era bastante alta y que los números deberían ser constantes. Por ejemplo, esperaría obtener una lectura fija de 90 en una fila, o una variación de como máximo 1 en el valor, entre 89 y 91.
-
Estoy usando la siguiente fórmula para convertir la lectura de nuevo al voltaje, pero no creo que sea correcto para calcular el voltaje de la lectura de ADC.
-
¿Es posible que ya se esté convirtiendo a voltios?
-
¿Debo publicar mi código?
$$ Input \, Voltage = Digital \, Reading \ times \ frac {Voltage \, Range} {Number \, of \, Bits} $$
¿Alguien me podría guiar a la fórmula correcta?