Manual

do

Maker

.

com

RDM6300 - Lendo RFID com Arduino

RDM6300 - Lendo RFID com Arduino

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!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.