Necesitaría un máximo de 4x5 = 20 entradas, no 25, ya que el pin común no se muestrea, pero ciertamente es menos posible (nueve en la respuesta anterior).
Puede conectar 4 resistores de valor diferentes a cada pin y usarlos para generar un divisor de potencial variable y leer cada interruptor con una sola entrada analógica. Necesitaría al menos 6 bits de resolución para obtener resultados inequívocos, 8 bits serían más fáciles ya que la selección de la resistencia no sería tan restrictiva porque su entrada se maximizaría en la mitad de la fuente (aunque podría ajustarlo para acercarse a una menor vRef si está disponible cuando se encuentra en el valor decimal máximo).
Si tiene las entradas analógicas, podría salirse con 5 entradas, menos si agrega un multiplexor. Podría usar un MUX de 8 entradas y un pin de conteo único para impulsar un contador de 3 bits para seleccionar la entrada. Conecte hasta 6 entradas al mux y tenga la primera entrada configurada a 0 V y la última a Vcc y luego las otras 6 entradas estarán en valores entre ellas (puede agregar una resistencia más para desviar las entradas del conmutador por encima de cero para que comience y los canales finales son únicos. Esto le permite salir con una salida (compartida con un LED de estado o algo) y una entrada analógica (el mux podría ingresar otra señal de variación lenta en el pin de repuesto como un valor actual del potenciómetro o algo así) ) y algún software.
Como estos son probablemente interruptores de entrada de una década, podría usar solo una entrada al mux como un voltaje de trama que equivalga al valor HEX 'F' que los interruptores no pueden generar. Esto le permitirá leer los cambios de 7 décadas (en lugar de 6 interruptores HEX) con un mux de 8 entradas. Si lees todos los interruptores dos veces y resuelves la misma configuración, puedes estar bastante seguro al saber que no han estado en el proceso de cambio. Los métodos R2R o 1R, 2R, 4R, 8R funcionarán, uno tiene más componentes pero puede tener solo uno o dos valores de resistencia, el otro tiene menos pero posiblemente valores impares.
Si tiene una entrada analógica de resolución de 10 bits, puede resolver 8 bits de resolución y hacer 2 interruptores con cada señal o un total de 14 decenios con 2 pines, aunque tal vez no sean tan confiables.
Los enlaces a dos respuestas aquí que explicarán cómo hacerlo y el último enlace le mostrarán muchas implementaciones posibles si lo anterior no es lo suficientemente claro o adecuado.
BCD Switch Resistor Network para Salida de tensión proporcional
¿Cómo debo usar los interruptores rotativos y las redes de resistencias para relacionar de manera única cada posible combinación de configuraciones de interruptores con un voltaje analógico?
enlace