Go Down

Topic: PS/2 lettore barcode (Read 4840 times) previous topic - next topic

ianselmi

Ciao a tutti,
sto utilizzando un arduino duemilanove a cui ho attaccato un lettore di barcode ps2.
Come libreria sto utilizzando questa: http://www.arduino.cc/playground/Main/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

Testato

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
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

ianselmi

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.

uwefed

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

ianselmi

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

ianselmi

Posto anche il codice dello sketch nel caso fosse utile:
Code: [Select]

#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...

uwefed

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

cyberhs

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?

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

cyberhs

Ok, il tuo lettore non prevede il bypass.

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

ianselmi

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

cyberhs

Forse dovresti provare altre versioni della libreria...

Che versione delle libreria usi?

uwefed


@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

ianselmi

@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.

cyberhs

Per caso il lettore è un CueCat?

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy