PS/2 lettore barcode

Ciao a tutti,
sto utilizzando un arduino duemilanove a cui ho attaccato un lettore di barcode ps2.
Come libreria sto utilizzando questa: Arduino Playground - PS2Keyboard alla versione 2.3

Il pin di clock è stato collegato al pin 3 di un input digitale e il pin data al pin 2

Ora, il tutto sembra funzionare, ma quando leggo un barcode, arduino mi ritorna codici che hanno poco senso. Come numero di caratteri ci siamo (il codice è composto da 9 caratteri e me ne vengono restituiti altrettanti), ma come valore proprio no.
Ho provato anche a cercare scancode per tastiere italiane, ma nulla.
Se provo ad utilizzarlo con un pc, il lettore funziona correttamente.

Un codice di esempio formato 123456789 ritorna A.$5&*B8
Sapreste darmi l'imbeccata corretta, per superare il blocco??

grazie mille a tutti per l'aiuto

l'ascii sembra non essere il problema,
ma hai ripetitivita' dei valori ? cioe' il numero 1 e' sempre tradotto con A ?

cmq nel tuo esempio non e' vero che ti ritorna la quantita' giusta perche' sono solo 8 caratteri non 9

Ciao e grazie per la risposta,
nel copia e incolla mi sono perso lo spazio tra il carattere * e B, oppure io carattere del forum non lo visualizza correttamente...comunque non è un problema.

Si, i caratteri sono sempre tradotti nello stesso modo, In questo esempio il carattere 1 è sempre A.

Se attacchi al posto del lettore barcde una tastiera PS2 cosa succede?
Collegando il lettore a un PC cosa succede?
Ciao Uwe

Ciao uwefed , se connetto il lettore al pc, funziona correttamente...
non ho provato con la tastiera ps2 perchè al momento non l'ho in casa, ma se dici che è una prova importante cerco di recuperarla

Posto anche il codice dello sketch nel caso fosse utile:

#include <PS2Keyboard.h>

const int DataPin = 2;
const int IRQpin =  3;

PS2Keyboard keyboard;

void setup() {
  delay(1000);
  keyboard.begin(DataPin, IRQpin, PS2Keymap_Italiano);
  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();
    } 
      
      // otherwise, just print all normal characters
      Serial.print(c);
    //Serial.print(' ');
  }
}

Ho provato anche a impostato il charset come in questo post: http://arduino.cc/forum/index.php/topic,82987.30.html
ma nulla...

Hai invertito i 2 Pin? Prova ad invertirle.
Ciao Uwe

Credo che sia un problema elettrico.

I lettori di codice a barre in emulazione tastiera prevedono due connettori, uno collegato alla tastiera ed uno al PC.

Nel tuo caso il PC è Arduino: hai collegato anche la tastiera?

@uwefed: Si ho provato a invertire e il risultato è che non leggo nessun carattere.
@cyberhs: Il lettore che utilizzo, ha un unico connettore ps/2 a cui connetto i pin che escono dall'harduino (5v, GND, clock e data). Tu cosa intendi per due connettori?

grazie
Ciao

Ok, il tuo lettore non prevede il bypass.

Che tipo di codice stai leggendo? EAN13, Code39 o cosa?

Ho fatto prove con code-128, code-39 ed EAN-13, ma nulla da fare

Forse dovresti provare altre versioni della libreria...

Che versione delle libreria usi?

ianselmi:
@uwefed: Si ho provato a invertire e il risultato è che non leggo nessun carattere.
@cyberhs: Il lettore che utilizzo, ha un unico connettore ps/2 a cui connetto i pin che escono dall'harduino (5v, GND, clock e data). Tu cosa intendi per due connettori?

grazie
Ciao

Normalmente attacchi la tastiera sul lettore e questo nella porta PS2 del PC. Cosí le cose lette dal lettore vengono prese come se venissero dalla tastiera e non c'é bisogno di driver.
Ciao Uwe

@cyberhs: Adesso sto provando l'ultima la 2.3, ma ho provato anche versioni precedenti con svariati risultati, dal non legge nulla a caratteri ancora più strani.

Magari provo a cambiare lettore, anche se mi sembra strano perchè altrimenti su pc dovrebbe avere lo stesso risultato.

Per caso il lettore è un CueCat?

No, è un "GRYPHON D100" (http://www.consumerschoicepos.com/datalogic_gryphon_barcode_scanner.html)

A pagina 17 del manuale ci sono i bar code da "leggere" per settare opportunamente il tipo di emulazione di tastiera: devi usare uno di quelli (ce ne sono 3 per il PC) senza tastiera esterna (without external kbd).

Nelle pagine seguenti trovera quelli per la scelta della lingua della tastiera: scegli ovviamente l'italiana.

grazie mille cyberhs, stasera ci provo.
Però non capisco perchè attaccandolo al pc, i caratteri sono riconosciuti correttamente.

Grazie mille ancora ancora.

Ciao

ho provato seguire questo manuale: ebookbrowse.com - ebookbrowse Resources and Information. con diverse configurazioni, ma nulla da fare mi ritorna sempre gli stessi caratteri.

Ho provato cambiare anche la mappatura, ma nulla.
Se invece provo attaccandolo la pc e notepad, tutto funziona regolarmente.

Sto sbagliando qualcosa?

Dirrei che Ti prendi in prestito una tastiera PS2 e provi con quella attacata a Arduino.
Cosí vedi dove é il problema.
Ciao Uwe