usando la biblioteca de teclado PS2 con Arduino Leonardo

4

Tengo dificultades para que la biblioteca de teclado PJRC PS2 funcione de manera confiable con el Arduino Leonardo. Soy relativamente nuevo en el uso del Arduino, pero esta biblioteca parece ser la forma recomendada de leer las pulsaciones de PS2.

Cuando ejecuto el croquis de ejemplo para hacer eco de las pulsaciones de teclas en el terminal serial, obtengo aproximadamente el 50% del los caracteres hicieron eco correctamente. La otra mitad consiste típicamente en caracteres al azar. Además, diría que solo el 30% de las pulsaciones de teclado se detectan realmente. Probé muchas teclas en el teclado para ver si había una falla mecánica, pero este error de identificación y detección les sucedió a todas.

Obtengo resultados muy diferentes usando el código de este blog que solo implementa el protocolo PS2 en un barebones camino. Todos los códigos de escaneo que se hacen eco de este programa son consistentes (y correctos después de que los busqué manualmente) y no hay retraso en la detección.

Por lo tanto, podría implementar mis propias tablas de búsqueda con el segundo ejemplo, pero tengo curiosidad por saber si existe una solución conocida para la publicación PJRC. Hay más funciones en esa biblioteca que me gustaría usar.

    
pregunta Matt

1 respuesta

2

Obtuve la liberación de PJRC a través de un golpe de suerte, no entiendo por qué funciona esto. En el bosquejo de ejemplo utilizo estas definiciones:

const int DataPin = 9;
const int IRQpin =  3;

Pero cuando realmente hago las conexiones físicas, tengo que poner el IRQpin (también conocido como CLK ) en el pin 2 del Leonardo. ( DATA permanece en el pin 9 según lo esperado en función de las definiciones de software). Esta configuración de software y la conexión aparentemente incorrecta me permiten usar la biblioteca como se esperaba.

Cuando muevo el cable CLK desde el teclado al pin 3, obtengo las mediciones demoradas e incorrectas mencionadas en la pregunta.

Así que estoy bastante confundido en cuanto a por qué este desajuste en el software y el cableado funciona, pero seguiré buscando ...

Editar: Tengo las cosas funcionando correctamente. El Leonardo no fue compatible con la versión 2.3 de la versión PJRC. Agregué algunas de las definiciones de interrupción faltantes en mi fork .

Edit 2: Paul de PJRC me dijo que el soporte de Leonardo ahora está disponible en la biblioteca PS2Keyboard que él hospeda.

    
respondido por el Matt

Lea otras preguntas en las etiquetas