Creando un teclado con un microcontrolador, ¿necesito un pin de entrada para cada tecla?

2

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 uno correspondiente a una letra del alfabeto inglés).

Esta puede ser una pregunta estúpida, pero ¿necesito un pin de entrada para la clave cada que implemento? En otras palabras, ¿necesitaré usar un microcontrolador que tenga al menos 26 pines de E / S? ¿O hay otra manera de hacer esto?

    
pregunta capcom

2 respuestas

10

La idea de usar 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 conmutadores. Como solo necesita excitar una fila de entrada a la vez, puede usar un simple decodificador 3-8 común 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 de tipo 74HC138 es necesario cambiar la lógica para que las columnas de salida tengan resistencias pullup, la dirección del diodo se invierta y el software verá mínimos (0) en las líneas de salida donde se ven los interruptores detectados.

Muchas gracias a tcrosley por tomar prestados algunos de sus gráficos matriciales clave ya Philips Semiconductors por la imagen del símbolo lógico de su parte 74HC138.

    
respondido por el Michael Karas
6

Una de las maneras 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 permitirá 30 llaves sin ningún cable adicional. Una matriz de 6x6 (solo un cable más) permitiría 36 claves, suficientes para A-Z y 0-9.

Debido al efecto de cuadratura, cuanto más grande sea el teclado, más cables guardará. 100 teclas solo toma 20 cables, incluso menos que la ejecución de un cable de cada una de sus 26 teclas originales.

La idea de la matriz funciona al escanear: mantienes una de las líneas I en alto, una detrás de otra, y luego escaneas todas las líneas O para cada línea I en alto. Obtendrá una entrada alta en solo una de las líneas O para solo una de las líneas I mantenidas altas. La combinación aislará una de las claves.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas