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??
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.
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(' ');
}
}
@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?
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.
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.