Kod:
string kardid[66];
kardid[0]= "233190152109162";
kardid[1]="121126144110249";
kardid[2]="1851591652129";
...
.....
............
kardid[65]="57177146110116";
///////////////////////
const char kardid[] PROGMEM = {"233190152109162,121126144110249,1851591652129,73195149110113,5737160110210,57177146110116,612472499,913516111065,54153241249167,8949201110207,121249165239,25161166228,2287116248205,2287116248205,1695218162212,19518514227239,227691472746,17920215427248,3131113157108,481748534233,671681442796,24323115127152,511631722739,837115427149,227136130157116,163191104157233,227184122157188,511351582749,201141622103,2287116248205,19519214627138,3512714427215,131121542714,163211130157111,21114314227201,5111913115790,243145113157142,2437512615791"};
Kod:
#include <RFID.h>
#include <SPI.h>
RFID rfid(10,9);
int role=7;
String disi[15];
String denetle;
void setup()
{
digitalWrite(role, HIGH);
pinMode(role, OUTPUT);
disi[0]= "233,190,152,109,162";
disi[1]="121,126,144,110,249";
disi[2]="185,159,165,2,129";
disi[66]="22,87,116,248,205";
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if(rfid.isCard())
{
if(rfid.readCardSerial())
{
for(int i=0; i<67; i++)
{
if( String(rfid.serNum[0]) + ","+String(rfid.serNum[1])+","+String(rfid.serNum[2])+","+String(rfid.serNum[3])+","+String(rfid.serNum[4]) == disi[i])
{
///
break;
}
}
}
rfid.halt();
}
}
Bir string dizesine atmak veya flash memory den indexof ile aramak vs bir sürü şey denedim. Fakat rfid kart için Arduino Uno üzerinde sdrami en verimli nasıl kullanabilirim bilmiyorum.
Şu ana kadar PROGMEM ile %12 sdram (Fakat tepki süresi çok uzun verimlilik düşük.) kullanılıyor iken string dizisi %50 ye yakın kullanım sağlanıyor. Donma problemi olmaması için bu kart id leri en verimli nasıl kullabilirim?