Caro,
aconselho a checar o BaudRate que inicializou a placa e o BaudRate do leitor. Normalmente você configura isso no leitor via leitura de um código de configuração conhecido.
Espero ter ajudado. Caso não, envie maiores detalhes para ajudá-lo.
Att,
Raul.
Ja verifiquei os dois estão com 9600, eu estou usando um leitor da simbol LS2208(motorola), com o cabo serial, eu preciso cadastrar um código de barra e quando ler esse código chama uma saida digital.
Mas estou tendo esse problema quando leio o cód ele imprime outro valor diferente,EX: o cód que criei é 11111 e apareco no display ggggg.
Obrigado pela ajuda
Leandro ,
qual a marca e modelo do leitor ?
Vc configurou ele direitinho ?
Abraço
Enio
Simbol LS2208, sim o leitor esta configurado (baixei o manual e configurei) pq quando ligo num painel aq da empresa ele lê o código certo e seleciona o programa correto no PC tambem funciona normal.
Obrigado pela ajuda
Ja verifiquei os dois estão com 9600, eu estou usando um leitor da simbol LS2208(motorola), com o cabo serial, eu preciso cadastrar um código de barra e quando ler esse código chama uma saida digital.
Mas estou tendo esse problema quando leio o cód ele imprime outro valor diferente,EX: o cód que criei é11111 e apareco no display ggggg.
Leandro, eu já fiz um leitor desses, mas tem que ser um leitor de código de barras PS2, aí dá certo. Segue o código que deu certo comigo:
int SCAN_ENTER = 0x5a; int SCAN_BREAK = 0xf0;
int breakActive = 0;
int clockPin = 2; // Clock is only output.
int dataPin = 3; // The data pin is bi-directional
// But at the moment we are only interested in receiving
int ledPin = 13; // When a SCAN_ENTER scancode is received the LED blink
int clockValue = 0; byte dataValue;
byte scanCodes[10] = {0x45,0x16,0x1e,0x26,0x25,0x2e,0x36,0x3d,0x3e,0x46}; char characters[10] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
int quantityCodes = 10;
char buffer[64] = {}; // This saves the characters (for now only numbers)
int bufferPos = 0;
int bufferLength = 64;
void setup() {
pinMode(dataPin, INPUT);
pinMode(clockPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
dataValue = dataRead();
// If there is a break code, skip the next byte
if (dataValue == SCAN_BREAK) {
breakActive = 1;
}
// Translate the scan codes to numbers
// If there is a match, store it to the buffer
for (int i = 0; i < quantityCodes; i++) {
byte temp = scanCodes[i];
if(temp == dataValue){
if(!breakActive == 1){
buffer[bufferPos] = characters[i];
bufferPos++;
}
}
}
//Serial.print('*'); // Output an asterix for every byte
// Print the buffer if SCAN_ENTER is pressed.
if(dataValue == SCAN_ENTER){
//Serial.print("\nbuffer: ");
// Read the buffer
int i=0;
if (buffer[i] != 0) {
while(buffer[i] != 0) {
Serial.print( buffer[i] );
buffer[i] = 0;
i++;
}
}
//Serial.println(" [Enter]");
bufferPos = 0;
// Blink the LED
digitalWrite(ledPin, HIGH);
delay(300);
digitalWrite(ledPin, LOW);
}
// Reset the SCAN_BREAK state if the byte was a normal one
if(dataValue != SCAN_BREAK){
breakActive = 0;
}
dataValue = 0;
}
int dataRead() {
byte val = 0;
// Skip start state and start bit
while (digitalRead(clockPin)); // Wait for LOW.
// clock is high when idle
while (!digitalRead(clockPin)); // Wait for HIGH.
while (digitalRead(clockPin)); // Wait for LOW.
for (int offset = 0; offset < 8; offset++) {
while (digitalRead(clockPin)); // Wait for LOW
val |= digitalRead(dataPin) offset; // Add to byte
while (!digitalRead(clockPin)); // Wait for HIGH
}
// Skipping parity and stop bits down here.
while (digitalRead(clockPin)); // Wait for LOW.
while (!digitalRead(clockPin)); // Wait for HIGH.
while (digitalRead(clockPin)); // Wait for LOW.
while (!digitalRead(clockPin)); // Wait for HIGH.
return val;
}
abraços.
Marcelo Cuin | @marcelocuin | www.cuin.com.br
Ola pessoal consegui fazer o leitor comunicar com o leitor de código de barra, fiz uma placa com MAX232 que converte rs232 para ttl...
Obrigado pela ajuda
Pode postar o projeto?
olá amigo, boa tarde!!
pode me dizer como fez a ligação do leitor via rs232 e qual biblioteca utilizou?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por