Manual
do
Maker
.
com
RDM6300 - Esse post não é a "perfeição da comunicação" mas está ótimo para ler tags pré-gravadas. Aliás, esse código serve apenas para ler uma tag específica definida em uma variável. Isso é porque minha necessidade é muito específica e esse leitor não será de acesso público, então desenvolvi um código para ler apenas a tag que será permitida para a devida finalidade.
Se quiser uma leitura genérica, você pode se basear no código a seguir:
char val = 0;
void setup(){
Serial1.begin(9600);
Serial.begin(9600);
}
void loop(){
if (Serial1.available() > 0){
val = Serial1.read();
Serial.print(val);
}
Serial.println("");
delay(100);
}
Não há muito o que falar desse leitor, mas basicamente a conexão necessária é um cabo do TX ao RX do Arduino (Leonardo em questão), um ground e um +5V. Quanto à pinagem, basicamente é essa do desenho que fiz em QCad a seguir (olhando por cima da board):
O valor de retorno é um array de 12 bytes nas minhas tags, portanto sem utilizar protocolo e sequer regra alguma, fiz a leitura serial e a incluí diretamente em uma variável para posteriormente comparar a leitura. Se pretende algo elaborado, sugiro que entenda como funciona o protocolo, os valores hexa das tags, comunicação bi-direcional, etc. Esse post é primordialmente para fazer funcionar em alguns minutos o leitor sem ter que desenvolver nada elaborado.
Tendo dito, segue o código:
char card[15] = {''};
char tag1[] = "680W76Z8DY3X";
char tag2[] = "------------";
int i;
void setup(){
Serial.begin(9600);
Serial1.begin(9600);
}
void loop(){
while (!Serial) {
;
}
while (!Serial1.find("C")){
delay(100);
}
Serial1.readBytesUntil(' ',card,14);
if (strcmp(card,tag1)){
Serial.println("Welcome!");
delay(10);
Serial.println(card);
Serial1.flush();
Serial.flush();
}
clear(card);
}
void clear(char *target){
for (i=0;i<sizeof(target);i++){
target[i] = '';
}
}
Coloquei alguns bytes impossíveis para a tag para ofuscar o valor real da tag que utilizei, mas o código é basicamente esse. Como o post anterior, não vejo necessidade de um video, portanto fica só nesse exemplo básico sem muita explicação, espero que lhe sirva!
Se gostou, não deixe de compartilhar; dê seu like no video e inscreva-se no nosso canal Manual do Maker Brasil no YouTube.
Próximo post a caminho!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.