A menos que los botones se mantengan durante un período prolongado de tiempo, es poco probable que la cantidad de corriente necesaria para leer las entradas de los botones digitales o codificados analógicamente sea un factor importante en el uso general de energía. Hay, sin embargo, algunas ventajas y desventajas de cada enfoque:
-1- Muchos procesadores pueden dormir hasta que una entrada digital cambia. Si bien estas técnicas pueden utilizarse con algunos métodos de cableado para botones codificados analógicamente, el uso de tales técnicas con botones analógicos a menudo agregará cierta complejidad.
-2- Cuando se usan botones analógicos, se debe tener mucho cuidado para evitar que los pulsos de los botones se malinterpreten. Presionar y soltar los botones justo en el momento adecuado puede hacer que la entrada se muestree en un valor incorrecto y, dependiendo del diseño del interruptor, presionar ligeramente un botón puede hacer que se conecte con una resistencia significativa. Por ejemplo, al presionar el botón unido a una resistencia de 2.2K de tal manera que el botón tenga una resistencia de 1K puede hacer que se identifique erróneamente como el botón conectado a la resistencia de 3.3K.
-3- Es posible que se pueda conectar un grupo de botones analógicos con menos cables que un grupo de botones digitales.
El enfoque que recomendaría para los botones analógicos sería tener una cadena de resistencia conectada entre un puerto de E / S digital y tierra, y que los botones conecten varios puntos de esa cadena a una entrada analógica que tiene un pull muy grande Resistencia superior y funcionalidad de despertador digital. Cuando la unidad está inactiva, los puertos de E / S digitales deben establecerse en un nivel bajo y el código debe esperar a que la entrada disminuya. Al presionar cualquier botón, el voltaje de entrada caerá a casi cero voltios. En ese momento, active el puerto de E / S digital y lea la tensión analógica varias veces hasta que parezca estable. La lectura de voltaje será casi independiente de la resistencia del interruptor, pero la cantidad de energía consumida por el circuito mientras está inactiva será esencialmente nula.
Editar/Addendum
Si tiene cuatro pines de E / S de triple estado, dos de ellos tienen ADC que pueden leer N niveles distintos, y uno (puede o no ser uno de ADC) tiene una capacidad de activación tras cambio, es posible para usarlos para leer la matriz de conmutadores NxN utilizando resistencias 2N + 3 y corriente quiescente cero. Empareje los pines de E / S, incluido un ADC en cada par. Conecte cadenas de resistencias N + 1 entre los pines de cada par y adjunte un pull-up débil al extremo sin ADC de la cadena que tiene la función de activación ante cambio. Conecte las filas y columnas de la matriz de interruptores entre los puntos N medios en las dos cadenas de resistencia.
Cuando esté inactivo, coloque los pines que no se activan durante el cambio, y deje flotar el lado de activación tras el cambio. Hasta que se presione un botón, ambos pines en el lado de activación tras cambio serán altos. Suponiendo que el pullup sea lo suficientemente grande, al presionar cualquier botón se reducirán ambos.
Para ver qué botón se presiona, coloque un pasador en el lado de la 'fila' de la matriz alto y el otro bajo, mientras que los pasadores de la 'columna' flotan. Luego lea el voltaje en uno de los pines de la columna, espere un poco si es necesario para que se estabilice (si no se estabiliza muy rápidamente, considere la presión aparente del botón como falsa). Luego, haga flotar los pines de la "fila", maneje los pines de la "columna" y lea el voltaje en uno de los pines de la "fila" (asegurándose de nuevo de que esté estable). Conduzca las filas y lea las columnas al menos una vez más, y si el valor coincide con el anterior, registre una pulsación de tecla.
Tenga en cuenta que este enfoque no permite ninguna combinación útil de dos teclas o de múltiples teclas, pero ofrece la clara ventaja de permitir el manejo de casi cualquier tamaño de teclado utilizando solo cuatro cables y un pin de activación tras cambio. . Al igual que con la sugerencia anterior, la resistencia del botón, dentro de lo razonable, no será un factor.