Otra respuesta ya respondió la pregunta de detección actual, así que responderé a esta parte:
Estaba pensando en usar tres divisores de voltaje (para tres rangos: 0-5, 0-10 y 0-15) y cambiarlos con mosfets. Luego usaría un ADC de 16 bits en lugar del ADC de 10 bits incorporado en el Arduino ...
Probablemente no sea necesario cambiar entre divisores, dado que está utilizando un ADC de 16 bits. Cambiar de un rango de 0-5 a un rango de 0-15 solo le da el equivalente de aproximadamente 1.6 bits más de resolución. Y también degradará un poco la precisión de la medición debido a la resistencia de encendido del interruptor.
Un ADC de 16 bits con rango de escala completa de 15 V (después de la escala previa) proporciona una resolución de 0.2 mV. ¿Realmente necesitas algo mejor que eso?
¿Es esa una forma precisa de detectar el voltaje y qué tolerancias deberían tener las resistencias?
Esto realmente depende de la precisión que desee para todo el sistema. Dado que eligió un ADC de 16 bits, asumiré que desea una precisión de cerca de 16 bits.
Para obtener una precisión de 16 bits sin calibración, necesitaría una tolerancia de resistencia mejor que \ $ 1 / 65,536 \ $ o aproximadamente 15 partes por millón. (En realidad, usted quiere aproximadamente 2x mejor que esto debido a la forma en que los errores para las dos resistencias se suman en la configuración del divisor de voltaje --- hay un nota de la aplicación de TI que se explica con más detalle)
Con la calibración, estás más interesado en cómo los valores de la resistencia varían con la temperatura y, en particular, en qué tan bien las dos resistencias en el divisor se rastrean entre sí (mantienen la misma proporción) sobre la temperatura.
Encontrará que requiere un diseño bastante cuidadoso para lograr una precisión de 16 bits. Por ejemplo, también deberá tener en cuenta las corrientes de fuga debidas a contaminantes en la superficie de la placa de circuito. Deriva del valor del resistor debido a la tensión mecánica, desviación del valor del resistor debido al voltaje aplicado, etc.