Olá pessoal, estou montando um sistema que preciso ler código de barras, o problema é que não sei "converter" o valor que eu recebo do leitor para o valor real do cógido de barras.

Quando passo no leitor o código de barras: "12345" ele retorna:
:147:263:263:131:131:336:36:0:

Quando passo no leitor o código de barras: "123456789" ele retorna:
:147:263:263:131:331:131:262:254:254:157:17:0:

Quando passo no leitor o código de barras: "novoteste" ele retorna:
:244:244:242:244:121:123:321:121:123:336:36:0:


Será que alguem tem uma luz ai? Obrigado.

O leitor que comprei é esse:

http://www.cis.com.br/modulos-para-integracao/modulos-codigo-de-bar...

O datasheet diz:

Os parâmetros de comunicação são:
-Baud Rate 9600; Dados 8; Sem paridade; Stop bit 1

O meu código de teste:

#include "SoftwareSerial.h"
SoftwareSerial barcode(2, 0xff);

void setup() {
Serial.begin(9600);
barcode.begin(9600);
}

void loop() {
if (barcode.available()) {
while (barcode.available()) {
byte value = barcode.read();
Serial.print(":");
Serial.print(value);
}
Serial.println(":");
}
}

Exibições: 5068

Responder esta

Respostas a este tópico

Você tem que descobrir qual é o formato do código de barras tipoEAN89 ou algo assim, depois você vai interpretar, em um scanner de código de barras, ligado no teclado, vc deve configurar ele para "interpretar" corretamente o código de barras, pois existem código de barras, apenas numéricos e com letras.

O formato do código de barras que vem no datasheet é:

- CODE 39;

- CODE 128.

Nao conheço esse leitor, mas vamos tentar primeiro o básico. Ele veio com saida RS232 ou TTL ? 

Se for RS232 e vc estiver ligando direto no arduido pode sair isso e ainda vc queimar alguma coisa. Falta o conversor TTL-RS232.

Se não for, deve haver um protocolo descrito em algum lugar indicando o significado de cada byte (como o Marcelo sugeriu).

Sim, a saida é TTL, ja procurei em tudo quanto é canto, mas não achei mais informações sobre cada byte

Code 39 determina como imprimir:

http://en.wikipedia.org/wiki/Code_39

O protocolo serial é outra coisa.

Só que vc tem aih numeros maiores que 255. Isso nao pode ! Vc tem que ler bytes. Vai ver todo problema é esse.

Encontrei esses links sobre Barcodes.

Veja se ajudam..

http://www.epanorama.net/links/smartcards.html#barcode

2 de 5 Intercalados:

http://www.adams1.com/i25code.html

Code 39:

http://www.adams1.com/39code.html

Code 128:

http://www.adams1.com/128code.html

Esse suporta os códigos 39 e 128 :

https://github.com/zxing/zxing

Uma pergunta, Você recebeu algum manual com códigos de barras para a configuração do leitor?

Acho que terá que fazer a configuração dele.

Achei esse manual do Scanner RS232:

http://www.cis.com.br/download/downloads/manuais/Manual%20MinyScan%...(v1.0).pdf

http://www.cis.com.br/downloads/

INTERFACES PARÂMETROS VALORES DA FÁBRICA

Baud Rate 2400 bps
Tamanho do Byte 7 bits
Paridade Impar
Stop Bits 2 Stop Bits
RS-232-C
Protocolo STX-ETX-BCC com ACK

Recebi sim, anexei agora...

tá informado la:

Os parâmetros de comunicação são:
-Baud Rate 9600; Dados 8; Sem paridade; Stop bit 1

Interface:
-A interface utilizada é serial RS232 

Anexos

Acho que não vai ser tão simples ler os dados.

Ainda acho que terá que configurá-lo. Talvez para a escolha do código a ser usado.

Veja esse tutorial da Adaruit:

http://learn.adafruit.com/barcode-scanner/

As  rotinas são mais complexas, não sei se aplicam ao seu leitor:

https://github.com/adafruit/LS2208-USB-Barcode-Scanner

Aih ta falando que é RS232. Vc disse que é TTL.. Tem ctz ??? Se tiver um multimetro de uma medida na tensão do pino TX. Ela tem que ser 5V em silencio. 0V ou tensão negativa indica RS232.

Então, no site da CIS diz: Serial RS-232, serial TTL e USB.

Ai eu encomendei o modelo com Serial TTL, e medi agora, deu 0v na TX...

 

Provavelmente me mandaram o modelo errado :/

Voc^^e leu o manual??

9.2. Protocolo STX-ETX-BCC

Quando um documento é passado pelo MinyScan 300 , o código
impresso é lido, decodificado e os dados tratados são transmitidos ao
equipamento hospedeiro através do canal de comunicação serial RS-232-C.

O formato básico das transmissões é:

STX | MENSAGEM | ETX | BCC

Onde:
STX - Caracter de Início de Mensagem - ASCII-02h
MENSAGEM - Dados lidos no código impresso
ETX - Caracter de Final de Mensagem - ASCII-03h
BCC - Block Check Character - Caracter verificador do Bloco - XOR (OR
exclusivo) de todos os caracteres da
mensagem, excluindo apenas o STX

O protocolo adotado na transmissão é apenas de formatação dos dados,
não havendo controle de Hardware (HANDSHAKING)

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço