Teclado usando un extensor de puerto 🤖

Después de aprender el uso básico del extensor PCA9554 en mis simulaciones con ISIS Proteus y de experimentar con el teclado por un puerto analógico, quise hacer lo mismo con el extensor.

PCA9554 Aplicaciones básicas.
Figura-01


A veces en nuestros proyectos quedamos cortos con los pines del micro, así que implementar un teclado por un extensor I2C y dejar los pines del micro con características especiales libres para sus usos, por ejemplos los de comunicación, interrupciones y analógicos, es una opción interesante.

Micro PIC18F452
Figura-02


Debo reconocer que todavía no poseo la experticia de entender totalmente el Driver “kbd.c” que tiene PIC-C CCS, pero realizo una interpretación en este ejercicio.

Primero tenemos la conexión del teclado con el extensor, como vemos en la figura-03.

Conexión al extensor.
Figura-03


Configuro los pines de 0 al 2 como salidas y del 3 al 7 como entradas. La idea es colocar un bajo en una fila y detectarlo en una de las entradas (si una tecla es pulsada) como vemos en la figura-04.

Fila 1.
Figura-04.


Así sucesivamente lo hacemos con las otras filas, si no se detecta el bajo (pulsación del teclado) se regresa el valor vació (“\0” carácter ó 0x00 hexadecimal).

Diagrama de la simulación.
Figura-05


Ejercicios [MEGA].





Conclusiones:

Igual que el ejemplo del teclado por el puerto analógico, se tiene que el micro ejecuta kbd_getc( ) mas rápido que una pulsación promedio, así que se tiene múltiples valores de la tecla pulsada, en ambos ejemplos se aminora este efecto con retardos, si se quiere implementar se debe ajustar estos retardos. En el Driver de PIC-C utiliza un contador que todavía no he descifrado, si lo hago agrego una nueva versión.

Simulación.
Figura-06.


Como siempre este ejemplo es para poner en práctica el concepto en la simulación y se obvian algunas conexiones, así que al final esta los Datasheet de los dispositivos usados.

No se le olviden revisar el “main.h” para ver los FUSES y la configuración de I2C, cualquier duda, consejo ó correcciones la pueden realizar usando los comentarios o lo enlaces del blog, aquí todos estamos aprendiendo.

DataSheet

PCA9554 y PIC18F452 [MEGA].


También puede interesarte:


Comentarios

Entradas más populares de este blog

Super Mario RPG 🎮