¿Qué esquema es mejor para la conexión del teclado a una MCU?

3

Tengo estos tres bocetos de conexión de teclado, todos los cuales he visto en varias aplicaciones, y algunos también los he usado, pero quiero saber si hay alguna ventaja de uno sobre el otro. El teclado se conectará directamente a los pines DIO de un microcontrolador PIC, PIN 1,2,3 como SALIDAS y PIN A, B, C, D como entradas.

El teclado no estará a bordo, pero se conectará mediante cables a la placa PCB, no sé si esto hace alguna diferencia.

    
pregunta TiOLUWA

3 respuestas

3

El número 1 puede ser destructivo para tu controlador. Si utilizaría salidas push-pull para las columnas y las filas como entradas, al presionar dos teclas en la misma fila cortocircuitará la fuente de alimentación a través de las salidas del microcontrolador. Si las salidas del microcontrolador pueden configurarse como drenaje abierto, entonces no hay problema, pero las salidas también deben tener resistencias de pull-up. Entonces, básicamente tienes el número 2, pero con los pull-ups integrados.

Número 2. La misma historia si usarías las filas como salidas. Usar las columnas como salidas tiene más sentido, ya que R1-R3 evita un cortocircuito de las salidas. Tenga en cuenta que un nivel de salida bajo verá la resistencia serie / pull-up como un divisor de voltaje, por lo que la entrada será de 0.1 Vcc, aunque eso generalmente no es un problema.

El número 3 evita el divisor, pero las resistencias en las entradas no sirven para ninguna función. Una variante sin el resistor de serie servirá.

Entonces 1) puede ser un absoluto no-no. 3) es un poco mejor que 2) porque no tiene el divisor de voltaje, pero puede prescindir de la resistencia en serie.

    
respondido por el stevenvh
2

Usted podría simplemente agregar diodos al primer esquema si su microcontrolador tiene incorporados pull-ups o pull-downs.

El ejemplo que se muestra asume que tienes pull-ups en tus entradas (para seleccionar una columna que tienes que reducirlo) y el estado de la clave se invierte.

Si tiene desplegables en sus entradas, invierte la polaridad de los diodos y para seleccionar una columna tiene que elevarla. No tienes que invertir el valor leído.

    
respondido por el Bruno Ferreira
1

El primer esquema está bien, suponiendo que esté utilizando un método de escaneo de dos fases. En la fase 1, los pines GPIO de la fila se configuran como entradas con resistencias de arranque internas habilitadas, y los pines GPIO de la columna se configuran como salidas configuradas en GND. En la segunda fase, los roles son revertidos. En cada caso, la lectura de entrada de 4 bits (o 3 bits) se almacena, y la "unión" de las dos fases proporciona un valor de 8 bits (o 7 bits) con el que puede decodificarse en el "botón X". presionado." Por supuesto, hay combinaciones de botones que son ambiguos para decodificar en este esquema (por ejemplo, co-lineal). También deberá proporcionar un pequeño retraso entre el cambio de las funciones de los pines y la lectura de las entradas para que los pines puedan cargarse. Dicho esto, es un buen enfoque de hardware mínimo, y mientras cumpla con las reglas del software, no hay peligro para su controlador.

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas