Autor Tema: Problema con teclado matricial 4x4 y pic (SOLUCIONADO)  (Leído 10682 veces)

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

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Problema con teclado matricial 4x4 y pic (SOLUCIONADO)
« en: 17 de Octubre de 2013, 14:35:07 »
Hola os planteo mi problema.

Estoy simulando un circuito con un pic y un teclado matricial 4x4 (creo que en Isis el teclado se llama keypad o algo así), y me ocurre lo siguiente:

Si conecto directamente la filas a la parte baja del puerto B y las columnas a la parte alta del puerto B utilizando las resistencias de pull up internas de dicho puerto el circuito me funciona perfectamente, es decir el pic reconoce adecuadamente la tecla que pulso. El problema es que en el circuito real se suelen colocar unos diodos (o tambien pueden ser unas resistencias), entre la parte baja del puerto b y las filas del teclado matricial para prevenir cortocirtuitos al pulsar a la vez dos teclas de la misma columna. Al colocar estos diodos el circuito deja de funcionar, el cero que se va colocando alternativamente en la parte baja del puerto b no pasa a través del diodo y el teclado hacia la parte alta del puerto b, lo más extraño es que si sustituyes el teclado matricial por interruptores mecánicos el ciruito funciona bien.

Tambien es curioso que en la ayuda del Isis sale un ejemplo de un pic haciendo una calculadora con ese mismo teclado y con los diodos y funciona correctamente.

Alguien sabe que puede pasar.
« Última modificación: 02 de Diciembre de 2013, 16:50:28 por yipi »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #1 en: 17 de Octubre de 2013, 15:41:43 »
Hola, a mi también me han presentado problemas estos teclados, yo opté por crear un módulo e importarlos cada vez que lo necesito, "File - Import - Section"

Saludos.


Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #2 en: 18 de Octubre de 2013, 06:41:05 »
Hola Diego

Otro dato curioso, si coloco los diodos entre la parte alta del puerto b y los terminales correspondientes a las columnas del teclado si que funciona pero en cambio si los coloco entre la parte baja y los terminales correspondientes a las filas (que es donde tienen que estar), no funciona. A efectos de la corriente tanto da ponerlos en la filas que en las columnas, la verdad es que no entiendo nada.

Saludos.

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #3 en: 18 de Octubre de 2013, 09:35:46 »
Hola, de todos modos no podemos olvidar que proteus es sólo un software simulador, donde se omiten muchos parámetros eléctricos, a veces hay que aprender ha capotear estos problemas, en muchos caso me ha tocado poner resistencias externas porqué las pull-up no funciona correctamente.

Desconectado fjalex

  • PIC18
  • ****
  • Mensajes: 405
    • Proteus - Hubor
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #4 en: 18 de Octubre de 2013, 16:27:17 »
¿Has probado a indicarle que los diodos los simule en modo digital?

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #5 en: 18 de Octubre de 2013, 17:17:01 »
Hola fjalex pues la verdad es que no se como se hace eso, pero ya te digo que si pongo pulsadores mecánicos funciona perfectamente por lo que supongo que el problema estará en el teclado matricial y no en los diodos pero ya que estamos si me dices como es lo pruebo.

Saludos.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #6 en: 18 de Octubre de 2013, 18:15:08 »
Es sólo una idea, pero...

Por qué no matar dos pajaros de un tiro, y aprovechando que las pull up internas se activan en todo el puertoB para todos los pines configurados como entradas, y cambiar todas las filas que no se estén escaneando a entradas? es decir, Para escanear las filas:
Ej:

PORTB = 0b00000000

Escaneo Primer fila:
TRISB =  0b11101111

Escaneo Segunda fila:
TRISB =  0b11011111

Escaneo Tercer fila:
TRISB =  0b10111111

Escaneo Cuarta fila:
TRISB =  0b01111111

De esa manera tanto el Simulador como el circuito real coincidirían y te ahorras los diodos del circuito original...Incluso te permitiría detectar cuando se presiona más de dos teclas de la mísma columna...

Saludos!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado fjalex

  • PIC18
  • ****
  • Mensajes: 405
    • Proteus - Hubor
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #7 en: 18 de Octubre de 2013, 20:05:32 »
Para hacer que el diodo se simule digital y no analógico, haz lo siguiente.

Encima del diodo, botón derecho del ratón y en el menú contextual elegir editar las propiedades.

Marca la casilla editar todas las propiedades como texto

La cadena {PRIMITIVE=ANALOGUE,DIODE}

Cambiala por {PRIMITIVE=DIGITAL,DIODE}

y pulsa el botón aceptar.

Ya me contarás si funciona o no.

Un saludo.

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #8 en: 18 de Octubre de 2013, 20:07:01 »
Hola BrunoF, si entiendo bien lo que tu me dices es que todos los pines menos por el que sacas el '0' son entradas de manera que sus resistencias de pull up están activadas impidiendo un posible corto al pulsar dos teclas de la misma columna.

En teoría debería funcionar no se si lo has probado. Siempre había visto que se ponían diodos o resistencias y de hecho ya los tengo puestos en el teclado que me he fabricado pero visto de esta manera como tu dices debería funcionar.

Saludos.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #9 en: 18 de Octubre de 2013, 20:13:25 »
Hola BrunoF, si entiendo bien lo que tu me dices es que todos los pines menos por el que sacas el '0' son entradas de manera que sus resistencias de pull up están activadas impidiendo un posible corto al pulsar dos teclas de la misma columna.

En teoría debería funcionar no se si lo has probado. Siempre había visto que se ponían diodos o resistencias y de hecho ya los tengo puestos en el teclado que me he fabricado pero visto de esta manera como tu dices debería funcionar.

Saludos.

Creo haberlo implementado alguna que otra vez hace varios años. Si pruebas nos avisas :)

Saludos!
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado yipi

  • PIC12
  • **
  • Mensajes: 79
Re: Problema con teclado matricial 4x4 y pic
« Respuesta #10 en: 19 de Octubre de 2013, 06:37:26 »
Hola fjalex

He probado lo que decías de simular los diodos en digital y así funciona perfectamente el circuito, además me he fijado que en el ejemplo que viene en la ayuda del Isis de una calculadora también le han cambiado esa característica a los diodos, así que me imagino que el problema era ese, de todas maneras me he montado un teclado con 16 pulsadores mecánicos tal y como me ha sugerido Diego en el segundo post y voy a utilizar ese que funciona sin modificar nada en los diodos.

Saludos.