Autor Tema: duda con teclado matricial  (Leído 2672 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
duda con teclado matricial
« en: 27 de Noviembre de 2009, 09:26:10 »
Hola a todos aqui mi pequeña duda

En clase tenemos que hacer un programa que detecte la fila y la columna de la tecla pulsada en un teclado matricial conectado al puerto B, para posteriormente mostrar esa fila y esa columna en dos displays de 7 segmentos cuyos siete segmentos tambien estan conectados al puerto B.

Una vez leidos la fila y columna de la tecla me dispongo a visualizarlos colocando todo el puerto B como salidas para poder sacar los valores correspondientes para los segmentos de los displays, pero aqui esta mi duda, como todo esto sucede muy rapido la tecla seguira pulsada por tanto si coincide que por el puerto B saco un valor que me coloca un cero en la fila y un uno en la columna (o viceversa) de la tecla que todavia sigue pulsada provocara un cortocircuito no?

He pensado en no visualizar hasta que el individuo no suelte la tecla pero nadie impide que se pulse la tecla justo en el momento en que el micro este sacando los valores de salida y pase lo mismo que antes.

Es correcto mi razonamiento?

Gracias

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: duda con teclado matricial
« Respuesta #1 en: 27 de Noviembre de 2009, 11:54:29 »
Hola a todos aqui mi pequeña duda

En clase tenemos que hacer un programa que detecte la fila y la columna de la tecla pulsada en un teclado matricial conectado al puerto B, para posteriormente mostrar esa fila y esa columna en dos displays de 7 segmentos cuyos siete segmentos tambien estan conectados al puerto B.

Una vez leidos la fila y columna de la tecla me dispongo a visualizarlos colocando todo el puerto B como salidas para poder sacar los valores correspondientes para los segmentos de los displays, pero aqui esta mi duda, como todo esto sucede muy rapido la tecla seguira pulsada por tanto si coincide que por el puerto B saco un valor que me coloca un cero en la fila y un uno en la columna (o viceversa) de la tecla que todavia sigue pulsada provocara un cortocircuito no?

He pensado en no visualizar hasta que el individuo no suelte la tecla pero nadie impide que se pulse la tecla justo en el momento en que el micro este sacando los valores de salida y pase lo mismo que antes.

Es correcto mi razonamiento?

Gracias

para que esto no suceda tienes que hacer una rutina antirebote, es decir preguntar hasta que el pin que detecta la tecla presionada sea cero.

por ejemplo si programas en C:

while(PIN_B4); // mientras el pin B4 sea 1 lógico esperar hasta que sea 0 lógico para continuar el código.
« Última modificación: 27 de Noviembre de 2009, 11:59:52 por fidodido18 »

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Re: duda con teclado matricial
« Respuesta #2 en: 27 de Noviembre de 2009, 13:50:00 »
Hola lo que tu me dices es que el programa no continue hasta no asegurarse de que se deje de pulsar la tecla, eso ya lo habia contemplado pero lo que pasa es que mientras no se pulse ninguna tecla ya se esta visualizando algo de manera dinamica en los displays aunque solo sean dos ceros (te recuerdo que mi programa visualiza la fila y la columna donde esta la tecla pulsada y en ausencia de pulsacion pues muestra dos ceros) y puede suceder que en ese momento se pulse una de las teclas en cuya fila y columna existan valores contrarios y lo que hay es un corto.

Debo decir que en clase utilizamos una placa de desarrollo que se llama SIDEPIC con su respectivo modulo de teclado matricial y desconozco si existe algun tipo de proteccion hardware para estas situaciones.

No se si se entiende bien del todo lo que digo espero que si.

Gracias.

Desconectado fidodido18

  • PIC18
  • ****
  • Mensajes: 312
Re: duda con teclado matricial
« Respuesta #3 en: 30 de Noviembre de 2009, 21:14:32 »
Hola lo que tu me dices es que el programa no continue hasta no asegurarse de que se deje de pulsar la tecla, eso ya lo habia contemplado pero lo que pasa es que mientras no se pulse ninguna tecla ya se esta visualizando algo de manera dinamica en los displays aunque solo sean dos ceros (te recuerdo que mi programa visualiza la fila y la columna donde esta la tecla pulsada y en ausencia de pulsacion pues muestra dos ceros) y puede suceder que en ese momento se pulse una de las teclas en cuya fila y columna existan valores contrarios y lo que hay es un corto.

Debo decir que en clase utilizamos una placa de desarrollo que se llama SIDEPIC con su respectivo modulo de teclado matricial y desconozco si existe algun tipo de proteccion hardware para estas situaciones.

No se si se entiende bien del todo lo que digo espero que si.

Gracias.

Si esa es tu preocupacion porque no utilizas unas resistencias?


 

anything