Vcc es la potencia suministrada al Arduino. El ADC realiza mediciones con respecto a Vcc, por lo que si Vcc cambia un 10%, los valores informados por el ADC cambiarán aproximadamente un 10% (en la otra dirección). Vcc depende de lo que su fuente de alimentación está suministrando y puede que no sea particularmente precisa.
El chip del procesador de Arduino incluye una referencia de intervalo de banda con compensación de temperatura que produce una fuente de referencia estable de 1.1V. Si usa esto para ADC, las fluctuaciones en Vcc no afectarán los valores de ADC. La desventaja es que su voltaje de entrada debe estar por debajo de 1.1V.
El convertidor analógico / digital convierte el voltaje de entrada analógica en un valor de 10 bits, donde 0 representa el voltaje de tierra (GND) y 1024 representa el voltaje de referencia o Vcc. (Excepto que 1023 es lo más alto que puede obtener). Entonces, si usa Vcc, entonces el significado de cada valor de ADC depende de lo que sucede que Vcc es. Si usa la referencia de 1.1V, entonces los valores de ADC son estables.
Pero el circuito que estás viendo hace las cosas de manera totalmente diferente. Utiliza Vcc para el voltaje de referencia ADC. Luego alimentan el suministro de 3.3V de Arduino en el ADC y miden su valor con el ADC. Si asume que el suministro de 3.3V es preciso, entonces puede trabajar hacia atrás y calcular Vcc. Finalmente, puede medir el voltaje del sensor que desea medir con el ADC, conectar el valor que calculó para Vcc y obtener una lectura precisa del sensor. Esto le permite medir valores hasta Vcc y corregir variaciones en Vcc.
La fuente de alimentación de 3.3 V es generada por un regulador lineal en la placa Arduino, que se supone que tiene una precisión del 1%. Entonces, si asumes que no tienes ninguna caída de voltaje entre el regulador y el Arduino, y supones que Vcc permanece constante mientras haces esto, entonces todo funciona bien.
Las matemáticas: suponga que su primera medición (de 3.3V) es \ $ n_1 \ $ y su segunda medición (del sensor) es \ $ n_2 \ $. Tenemos
\ $ 3.3V = n_1 * \ frac {V_ {cc}} {1024} \ $
\ $ V_ {sensor} = n_2 * \ frac {V_ {cc}} {1024}
\ $
Podemos cancelar \ $ V_ {cc} \ $, eliminando la inexactitud de su valor:
\ $ V_ {sensor} = 3.3V * \ frac {n_2} {n_1} \ $