Estou fazendo TADS na IFPR - Campus Umuarama e pretendo fazer um projeto com um controle diário de ração.
O Projeto visa animais de grande porte, onde uma balança mede a quantidade de ração que cairá diariamente para o animal, baseado no seu peso quinzenal.
O sistema de Balanças para pesagem da ração já foi feito, mas, ainda estou com um problema.
Tenho observado que não temos muitas informações sobre RFID de 134.2 khz, frequência esta que é utilizada nas TAGS usadas em animais.
Boas,
Como verificaste que nao consegues obter a informação da tag?
Que código usas-te e como ligaste o leitor?
No site onde compraste indica isto:
Receptor de dados: 03 84 12 DB FA E7 D5
Id do país: 03 84
Id nacional: 12 db fa e7 d5
Protocolo Serial: AA 0F 08 00 03 84 12 DB FA E7 D5 81 BB
Código de início: AA
Código fixo: 0F 08 00
Dados de Tag: 03 84 12 DB FA E7 D5
Verificar o código: B1
Final código: BB
Cálculo do código de verificação: 0f (xor) 08 (xor) 00 (xor) 03 (xor) 84 (xor) 12 (xor) db (xor) fa (xor) e7 (xor) d5 = 81
Ao aproximares uma tag é expectavel que na saida TX, surja uma trama semelhante ao que o fabricante indica.
O problema se encontra exatamente nisto, em como obter os dados.
_ O que tenho feito.
Pego alguns códigos mais genéricos de leitores de RFID e tento usá-los para ler as tags que possuo.
Exemplo: Animal_RFID_Reader
#include <SoftwareSerial.h>
SoftwareSerial RFID(2, 3); // RX and TX
const int LED = 13; // 5.5
const int BTPWR = 12;
int i;
int yes = 14;
int no = 13;
void setup()
{
RFID.begin(9600); // start serial to RFID reader
Serial.begin(9600); // start serial to PC
pinMode(yes, OUTPUT); // for status LEDs
pinMode(no, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(BTPWR, OUTPUT);// start serial to BT
digitalWrite(LED, LOW);
digitalWrite(BTPWR, HIGH);
digitalWrite(LED, HIGH);
}
void readTags()
{
if (RFID.available() > 0)//lectura de chip
{
i = RFID.read();
Serial.print(i, DEC); //Salida de info
readTags();
}
}
void loop()
{
readTags();
}
Mas, não obtive nada especifico para este Leitor que comprei.
void readTags()
{
if (RFID.available() > 0)//lectura de chip
{
i = RFID.read();
Serial.print(i, DEC); //Salida de info
readTags();//Em recursividade
}
}
Atenção nao deves usar funçoes em recursividade!
Estas a chamar a funçao dentro da mesma e isso rebenta ...
Chegas a obter algo no Serial.print(i, DEC); //Salida de info?