Connecter un clavier ps/2 à 5 fils sur un arduino, possible ?

Bonjour, j’aimerais utiliser un clavier ps/2 sur un arduino. Je me suis dit qu’en principe ce serait assez simple j’ai donc récupéré et installé la dernière version de ps2keyboard que j’ai trouvée sur le playground, j’ai coupé le connecteur ps/2 sauf que là je suis tombé sur un problème : Au lieu d’avoir 4 fils comme sur l’illustration du playground, j’ai 5 fils : 1 rouge, 1 blanc, 1 vert, 1 jaune et 1 tressé sans gaine en plastique. Par rapport à ce que j’avais vu sur internet j’en ai supposé que le rouge et le tressé étaient le +5V et la masse. J’ai donc essayé et lorsque je l’aliment en 5V les 3 leds d’état ( verr.num, majuscule et la dernière je sais plus ce que c’est ) s’allument et s’éteignent comme lorsque qu’on allume un ordinateur, je suppose donc que c’est ça. Ensuite j’ai testé au multimètre les 3 autres fils : le blanc et le vert ont une tension de 5 V ( 5.03 quand j’ai mesuré ) et le jaune a une tension de 0V, j’en ai donc déduit que c’est le fil d’horloge. J’ai ensuite essayé le fil vert et le fil blanc séparément sur la pin 8 mais lorsque je teste le programme, j’obtiens seulement le “Keyboard test :”. Savez-vous si je dois utiliser les 2 fils en même temps ou s’il y a quelque chose de plus de nécessaire pour obtenir la touche appuyée sur le clavier ? J’ai fait des recherches avant mais à chaque fois les questions posées où les références des pins d’un cable ps/2 mentionnaient seulement 4 fils, le 5e et le 6e possible étant “Réservé”, mais réservé à quoi en fait ?

J’utilise ce programme d’exemple fournie avec la bibliothèque pour utiliser mon clavier :

/*  PS2Keyboard library example
  
  PS2Keyboard now requries both pins specified for begin()

  keyboard.begin(data_pin, irq_pin);
  
  Valid irq pins:
     Arduino:      2, 3
     Arduino Mega: 2, 3, 18, 19, 20, 21
     Teensy 1.0:   0, 1, 2, 3, 4, 6, 7, 16
     Teensy 2.0:   5, 6, 7, 8
     Teensy++ 1.0: 0, 1, 2, 3, 18, 19, 36, 37
     Teensy++ 2.0: 0, 1, 2, 3, 18, 19, 36, 37
     Sanguino:     2, 10, 11
  
  for more information you can read the original wiki in arduino.cc
  at http://www.arduino.cc/playground/Main/PS2Keyboard
  or http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html
  
  Like the Original library and example this is under LGPL license.
  
  Modified by Cuninganreset@gmail.com on 2010-03-22
  Modified by Paul Stoffregen <paul@pjrc.com> June 2010
*/
   
#include <PS2Keyboard.h>

const int DataPin = 8;
const int IRQpin =  5;

PS2Keyboard keyboard;

void setup() {
  delay(1000);
  keyboard.begin(DataPin, IRQpin);
  Serial.begin(9600);
  Serial.println("Keyboard Test:");
}

void loop() {
  if (keyboard.available()) {
    
    // read the next key
    char c = keyboard.read();
    
    // check for some of the special keys
    if (c == PS2_ENTER) {
      Serial.println();
    } else if (c == PS2_TAB) {
      Serial.print("[Tab]");
    } else if (c == PS2_ESC) {
      Serial.print("[ESC]");
    } else if (c == PS2_PAGEDOWN) {
      Serial.print("[PgDn]");
    } else if (c == PS2_PAGEUP) {
      Serial.print("[PgUp]");
    } else if (c == PS2_LEFTARROW) {
      Serial.print("[Left]");
    } else if (c == PS2_RIGHTARROW) {
      Serial.print("[Right]");
    } else if (c == PS2_UPARROW) {
      Serial.print("[Up]");
    } else if (c == PS2_DOWNARROW) {
      Serial.print("[Down]");
    } else if (c == PS2_DELETE) {
      Serial.print("[Del]");
    } else {
      
      // otherwise, just print all normal characters
      Serial.print(c);
    }
  }
}

Merci d’avance de votre aide

Bonjour si tu as gardé le connecteur ps/2 pour avoir le brochage correspondant aux fils,tu peut avoir la correspondance brochage / fonction sur Google. A+

Bonjour re http://fr.wikipedia.org/wiki/Port_PS/2 A+

Merci je vais essayer de décortiquer la gaine du connecteur.

Je vais vérifier que je ne me suis pas trompé dans mes déductions du brochage mais je pense que le clavier a besoin que les 5 fils soient connectés, or j'avais déjà regardé avant de poser la question des illustrations de brochage comme tu m'as montré mais "Réservé" ça ne signifie pas grand chose pour moi... Et les exemples du playground n'utilisent que 4 fils.

Et que se passerait-il si je branchais un des fils +5V sur la pin de l'arduino servant "d'horloge" ? Pour moi ça serait en court-circuit donc ça ne serait pas un de ceux là mais je me trompe peut-être ?

Bonjour Sur certains portables, c'était la même prise qui servait pour le clavier et la souris, les deux réserves sont pour la souris. A+

Ok merci, bon j'ai avancé et après avoir vérifié la correspondance des fils volà ce que ça donne :

  • fil blanc -> Données -> Pin 2 sur le schéma wikipédia ou pin 1 sur un schéma de connecteur ps/2 clavier

  • fil rouge -> +5V

  • fil jaune -> Masse

  • fil tressé -> Masse ( relié au connecteur )

  • fil vert -> horloge

J'ai adapté mes branchements mais ça n'a toujours pas évolué : Les leds du clavier s'allument et s'éteignent aussitôt lorsque je branche l'arduino et il ne récupère toujours pas les touches du clavier...

Là je vois vraiment d'où ça peut venir...

Merci de ton aide Ive :)

Bonjour As-tu regardé sur http://playground.arduino.cc/Main/PS2Keyboard Attention le clock du clavier doit être raccordé sur la broche 3 de l'Arduino et le programme utilise les interruptions ! A+

J'utilises déjà la pin 3 pour l'horloge ( pour essayer malgré que l'exemple de base utilise la pin 5 ), mais sans grand succès... Ah après débranchement et rebranchement plusieurs fois j'ai du mieux ( je sais pas pourquoi... ) : les 3 leds restent allumées mais je n'arrive toujours pas à lire la touche du clavier qui est appuyée...

Edit : Ah ba non après avoir réessayé elles recommencent à s'allumer et s'éteindre aussitôt après...

Bonjour Dans l'exemple c'est pour un Arduino Mege essaye avec


const int IRQpin = 2;


pour voir A+

Ça ne change rien malheureusement, je pense que je vais plutôt démonter le clavier pour regarder au départ des fils si je n'en ai pas coupé un lorsque j'ai dénudé les câbles, en particulier le fil jaune où je mesure 0V ce n'est peut-être pas normal en fait.