网上买了个rfid模块
这个模块用usb-ddl输入AA BB 02 20 22后可以读到序列号B7 FA 1D E4 92
这个写到arduino里,用arduino来读卡怎么写呢。。。
有一段例程代码。
目的是如果扫描到正确的卡灯会闪烁。但是总是无法正确执行。不知道问题在哪。
int val=0;
int ledpin=13;
int status=0;
unsigned char searchCMD[]={0xAA,0xBB,0x02,0x20,0x22};
unsigned char searchRES[5];
void setup(){
Serial.begin(19200);
pinMode(ledpin,OUTPUT);
}
int searchCard(){
Serial.write(searchCMD,5);
delay(100);
status=0;
while(true){
if(Serial.available()>0){
val=Serial.read();
switch(status){
case 0:
if(val==0xAA)status=1;
break;
case 1:
if(val==0xBB)status=2;
else return -1;
break;
case 2:
if(val==0x06)status=3;
else return -1;
break;
case 3:
if(val==0x20)status=4;
else return -1;
break;
case 4:
if(val==0xB7)status=5;
else return -1;
break;
case 5:
if(val==0xFA)status=6;
else return -1;
break;
case 6:
if(val==0x1D)status=7;
else return -1;
break;
case 7:
if(val==0xE4)status=8;
else return -1;
break;
case 8:
if(val==0x92)status=9;
else return -1;
break;
case 9:
searchRES[status-5]=val; 这里不太懂
status++;
break;
case 10:
return 0;
break;
default:
return -1;
break;
}
}
}
}
void loop(){
if(searchCard()!=-1){
if(searchRES[0] == 0xB7 && searchRES[1] == 0xFA && searchRES[2] == 0x1D && searchRES[3] == 0xE4 && searchRES[4] == 0x92 )
{
digitalWrite(ledpin,HIGH);
delay(1000);
digitalWrite(ledpin,LOW);
delay(1000);
Serial.println(searchRES[5]);
}
} |