0

Usar un teclado PS/2 con Arduino

En este tutorial conoceremos como esta fabricado un teclado de computadora, con puerto PS/2, para poder usarlo en distintos proyectos. La idea se desprende de la necesidad de crear dispositivos alternativos a los comerciales para asistir a personas con discapacidades.

Es importante destacar que además de aprender programación y electrónica, la intención es animarlos a estudiar, intervenir, desarmar o modificar aparatos o dispositivos comerciales que han caído en desuso.

El teclado

En nuestro experimento trabajamos con un teclado chino que no posee pulsadores mecánicos, sino una lamina con las pistas y contactos pintados.

Lo que nos importa del teclado es la placa controladora que posee, ya que soldaremos cables con pulsadores mecánicos en la sección numérica. La misma esta formada por un capacitor, una resistencia, tres LEDs y un circuito integrado del cual es imposible obtener datos ya que no lleva ningún tipo de inscripción.

Investigando un poco el circuito llegamos a la conclusión que el entramado de teclas se basa en filas y columnas al igual que cualquier teclado de tipo matricial. En cuanto al cable de datos veremos 4 conexiones: CLOCK, DATA, GND y VCC.

Interfaz PS/2 – Arduino

A continuación el circuito de conexionado a la placa Arduino y los pulsadores. Hay que tener en cuenta que el pin CLOCK de la controladora deberá conectarse a un pin de interrupción de la placa Arduino. En el caso de la UNO se puede utilizar el pin 3.

Implementación

El código está basado en la librería PS2Keyboard que podemos encontrar en los repositorios oficiales de Arduino. A continuación el ejemplo que captura la tecla presionada y la muestra mediante el terminal serie:

/*
     LECTURA DE TECLADO PS/2
*/

#include <PS2Keyboard.h>

// declaración de constantes
const int datos = 2;
const int reloj = 3;

PS2Keyboard teclado;

void setup() {
  
  delay(1000);
  teclado.begin(datos, reloj);
  Serial.begin(9600);
  Serial.println("Prueba de teclado");

}

void loop() {

  if (teclado.available()) {

    // leer y mostrar la tecla presionada
    char c = teclado.read();
    Serial.println(c);

  }
}

Lucas Martin

Electrónico por sobre todas las cosas. Disfrutando del Hardware y Software Libre.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.