Acabo de hacer una prueba con 4 microinterruptores y un convertidor digital-analógico (DAC) de 4 bits,
ha ido muy bien y no requiere calibración. Los valores leídos para cada microinterruptor de izquierda (MSB) a derecha (LSB) son 731, 682, 614 y 512. La distancia mínima entre dos de estos enteros es de 49 unidades y la pequeña variación entre una y otra prueba es de ±1 por lo que no habrá problema para discernir qué botón se pulsa. Añadir otro u otros microinterruptores más es algo trivial.
Pienso que aparte de bueno es esencial. Si alguien compra los componentes del tester para montarlo, excepto si los compra en una tienda de electrónica local, las resistencias tendrá que pedirlas por lotes y normalmente menos de 100 unidades no interesa por precio. Además, en pos de la consolidación de la lista de componentes desde el mismo origen, cuando tengamos claros los valores necesarios para la mayoría de las resistencias del circuito (pull-ups, protección,...), como se utiliza una escalera R-2R escogemos otras de la mitad o del doble del valor para el DAC.La parte buena de tu esquema de resistencias, es que son todas las resistencias de dos valores, sin complicación,
Y recapitulando para cambiar de tema, tal como está siendo planificado, de los 22 pines del Nano, utilizaremos 1 para la entrada, 2 para la salida, y 19 que van conectados al zócalo ZIF. Escogiendo la asignación de D0 y D1 (TX/RX) se pueden soslayar los problemas siempre que no haya tensiones asignadas y/o el zócalo ZIF quede vacío cuando se programe el firmware; pero como todos los pines quedan conectados, se va a obstaculizar la transmisión y recepción serie durante los tests lo que implica que el proyecto inicial de controlar el tester y recibir los resultados por esta vía quedaría descartado. A costa de añadir complejidad al tester y de disminuir la velocidad máxima de los tests podrían sobrecargarse algunos pines del bus de direcciones pero, a priori y en mi opinión personal, si tengo que escoger entre las dos opciones prefiero la simplicidad del diseño, tener menos componentes en la lista final y un firmware más simple y accesible a cambio de renunciar a la comunicación serie. Si fuera esencial estaría más a favor de cambiar a otro microcontrolador con más pines I/O.