Estoy planeando implementar V-USB con un microcontrolador ATMega8. Estoy interesado en implementar un dispositivo HID; más específicamente, quiero probar y hacer mi propio teclado simple de 26 teclas (cada una correspondiente a una letra del alfabeto inglés).
Esta puede ser una pregunta estúpida, pero ¿necesito un pin de entrada para cada tecla que implemente? En otras palabras, ¿necesitaré usar un microcontrolador que tenga al menos 26 pines de E/S? ¿O hay otra manera de hacer esto?
La idea de utilizar una matriz es sin duda el camino a seguir. Su matriz podría organizarse de otra manera con ocho filas de entrada y cuatro líneas de salida para admitir hasta 32 interruptores. Dado que solo necesita excitar una fila de entrada a la vez, puede usar un decodificador 3-8 común simple para controlar las filas de entrada como se muestra a continuación. ¡Esto reduce el número total de pines del microcontrolador a 7 líneas !
Tenga en cuenta que con el uso de un decodificador 3-8 tipo 74HC138 es necesario cambiar la lógica para que las columnas de salida tengan resistencias pullup, la dirección del diodo se invierte y el software verá valores bajos (0) en las líneas de salida donde se detectan los interruptores. Son vistos.
Muchas gracias a tcrosley por tomar prestados algunos de sus gráficos de matriz clave ya Philips Semiconductors por la imagen del símbolo lógico de su pieza 74HC138.
Una de las formas más fáciles es usar una matriz de teclado, como esta:
En su caso, para 26 teclas, puede organizarlo en una matriz de 5 x 6 (que requiere 11 pines de E/S). Esto realmente permitirá 30 llaves sin cables adicionales. Una matriz de 6x6 (solo un cable más) permitiría 36 teclas, suficientes para AZ y 0-9.
Debido al efecto de cuadratura, cuanto más grande sea el teclado, más cables ahorrará. 100 llaves requieren solo 20 cables, incluso menos que un cable de cada una de las 26 llaves originales.
La idea de la matriz funciona escaneando: mantienes una de las líneas I en alto, una tras otra, y luego escaneas todas las líneas O para cada línea I mantenida en alto. Obtendrá una entrada alta en solo una de las líneas O para solo una de las líneas I mantenida alta. La combinación aislará una de las teclas.
yippie