Hallo Leute,
Ich habe mir mit dem Leonardo einen kleinen Rfid Reader zusammengebaut und komme an der Stelle der Auswertung der Tag´s nicht weiter. Wo habe ich den Denkfehler in der switch-case ?
#include <SoftwareSerial.h>
const byte codeLength = 14; //15 Zeichen gesammt da bei es bei 0 anfängt: Manufacturers code(2) + ID card number(10) + parity bits(3).
volatile long lastRead=0;
char code[codeLength];
int val = 0;
int bytesread = 0;
SoftwareSerial RFID (11, 255);
void setup()
{
Serial.begin(9600);
while(!Serial)
Serial.print ("Moin");
RFID.begin(9600);
}
void loop()
{
if (RFID.available())
{
lastRead = millis(); //Zeit des letzten bytes
val = RFID.read();
if((val == 10)||(val == 13)) //Wenn neue Zeil zb durch leseabbruch verschoben
{
bytesread=0;
}
else
{
code[bytesread] = val;
bytesread++;
}
}
if ((bytesread>0) && (millis()-lastRead>1000))//Wenn am lesen und zu lange kein byte empfangen = reset
{
bytesread = 0;
}
if(bytesread == codeLength) //Wenn alles empfangen
{
bytesread = 0;
Serial.print("TAG code: ");
Serial.println(code);
}
switch (code){
case 05000604E2E5:
Serial.print("Station 1");
break;
case 4F0088925E0B:
Serial.print("Station 2");
break;
}
}
05000604E2E5 und 4F0088925E0B sind die mit dem Arduino ausgelesenen Codes der Tags.