Autor Tema: Interrupcion Teclado Matricial PIC 16F84  (Leído 2565 veces)

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

Desconectado jromeronet

  • PIC10
  • *
  • Mensajes: 4
Interrupcion Teclado Matricial PIC 16F84
« en: 24 de Septiembre de 2004, 18:29:00 »
Hola a todos.

Expongo la siguientes cuestion:

He diseñado con un pic 16f84 un sistema que captura las teclas de un teclado matricial de 4x4, la subrrutina de captura de teclado se lanza justamente cuando se pulsa una tecla activando una interrupcion por cambio de estado en las columnas que estan a nivel alto por las resitencias de pull-up del controlador.

La cuestion es que en ocasiones sin pulsar ninguna tecla se produce una interrupcion ocasionada por ruido puesto que no es la unica placa que esta funcionando,evidentemente cuando se da ese caso esa interrupcion la desecho,pero en ocasiones llego a perder alguna tecla pulsada.

He utilizado la subrrutinas del libro Microcontrolador PIC16F84. Desarrollo de proyectos de la editorial Ra-Ma.

Como se podria hacer para que la Interrupcion no sea tan sensible o evitar esta situacion sin eliminar la Interrupcion?

Muchisimas gracias

Un saludo.

Desconectado pietrodilaccua

  • PIC10
  • *
  • Mensajes: 46
RE: Interrupcion Teclado Matricial PIC 16F84
« Respuesta #1 en: 24 de Septiembre de 2004, 19:50:00 »
hola jrom:
alguna vez tuve el mismo problema y lo solucione desacoplando la fuente muy cerca del chip con un capacitor de 0.1 uf y luego al atender la interrupcion generando un loop de 300 useg para luego chequear nuevamente el estado de las puertas, puedes probar aumentando el retardo pues normalmente un pulso de tecla tarda mas de 1 mseg.

espero te sirva.

saludos pietrodilaccua

Desconectado Meybel

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 60
RE: Interrupcion Teclado Matricial PIC 16F84
« Respuesta #2 en: 25 de Septiembre de 2004, 00:15:00 »
Yo utilizo la misma subrutina y no tengo ese problema. Da la impresión que tienes un problema de hardware. Prueba lo siguiente:

- Desacoplar la alimentación conectando un condensador de 100 nF entre la patilla VDD (patilla 14) y VSS (patilla 5), lo más cerca fisicamente que puedas del PIC.
- Conectar un condensador electrolítico de 100 microfaradios entre positivo y negativo de la placa.
- Comprueba que los valores de las resistencias que van del micro al teclado son los correctos.
- ¿Tienes algo más conectado al Puerto B?.
- Además de la interrupción por cambio en las líneas del Puerto B, ¿tienes alguna otra interrupción activada?.



Desconectado jromeronet

  • PIC10
  • *
  • Mensajes: 4
RE: Interrupcion Teclado Matricial PIC 16F84
« Respuesta #3 en: 25 de Septiembre de 2004, 05:04:00 »
Hola.

Gracias pietrodilaccua por tus sugerencias,las voy a tener en cuenta,ya te comentare que tal los resultados.

Gracias tambien a ti Meybel,te comento un poco mas de mi proyecto,en cuestion mi diseño esta trabajado con 4 ic´s atraves de un bus I2C pero esta capturando un total de 32000 teclas semanales,con esta subrrutina,con lo que la estoy poniendo bien a prueba.

la conexion del teclado es sencilla,Rb7...Rb4 habilitadalas con las resistencias de pull-up RBPU son las columnas y Rb0..Rb3 son las filas.No he utilizado ninguna resistencia en serie con el teclado,por que no utilizo este puerto nada mas que para escanear las teclas.

En ocasiones aparecian el caracter "." en mis lecturas de teclado,coincidiendo con la perdida de algunas pulsaciones,hasta 6 0 7 "." continuos,revisando la subrrutina esto ocurre cuando se produce una INT sin pulsar una tecla,puesto que el valor de W en ese caso coincidia con el caracter ".".

Para generar una INT sin pulsar una tecla solo tengo que golpear una fila con un cable sin conexion o con la propia pinza del polimetro (Ruido),produciendo la aparicion del caracter "." en mis lecturas.salta la INT pero todas mis filas estan a "1".

Cuando esto ocurre simplemente salgo del servicio de interrupcion y ya no se graba el "." es facil la solucion,pero en alguna ocasion se pierde alguna tecla,y sospecho que este ruido continua siendo la causa de la perdida.puesto que donde esta ubicada mi placa existen otras placas funcionando con la misma alimentacion en la misma caja,y el numero de "." leidos aumento muchisimo comparado con los producidos en la pruebas de laboratorio  con la placa sola,que fue alguno escaso.

No estoy utilizando nada mas que la INT del teclado,y el condensadores de desacoplo para cada aunque es verdad que en el caso del pic se encuentra a + o - 2 cms de distancia por pista del pic.tambien he tenido  conectado una capacidad de 100u pero esto tiene un problema y es que para reiniciar la placa tengo que esperar a su descarga.

Gracias por sus comentarios.

Reciban un cordial saludo.










 

anything