Operácie

RFID reader: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
Bez shrnutí editace
Riadok 2: Riadok 2:
== Čítačka RFID kariet ==
== Čítačka RFID kariet ==
[[Súbor:RFIDreader.jpg|left]]
[[Súbor:RFIDreader.jpg|left]]


* Čo je to [http://en.wikipedia.org/wiki/Radio-frequency_identification RFID] (wikipedia.org)
* Čo je to [http://en.wikipedia.org/wiki/Radio-frequency_identification RFID] (wikipedia.org)
Riadok 7: Riadok 9:
* [http://www.parallax.com/Portals/0/Downloads/docs/prod/audiovis/28140-28340-RFID%20Reader-v2.1.pdf Datasheet] (parallax.com)
* [http://www.parallax.com/Portals/0/Downloads/docs/prod/audiovis/28140-28340-RFID%20Reader-v2.1.pdf Datasheet] (parallax.com)
* [http://www.gumbolabs.org/2009/10/17/parallax-rfid-reader-arduino/ Príklad s vysvetlivkami] (gumolabs.org)
* [http://www.gumbolabs.org/2009/10/17/parallax-rfid-reader-arduino/ Príklad s vysvetlivkami] (gumolabs.org)


Aby sme sa vyhli zápasu o jediný sériový kanál procesora, pripojíme čítačku  
Aby sme sa vyhli zápasu o jediný sériový kanál procesora, pripojíme čítačku  
Riadok 18: Riadok 22:




Example code (modified source from [http://arduino.cc/playground/Learning/PRFID Arduino Playground):
Example code (modified source from [http://arduino.cc/playground/Learning/PRFID Arduino Playground]):
<source lang="c">
<source lang="c">
#define A B
#include <SoftwareSerial.h>
main
// Hardware connections
{
#define ENABLE 11
#define SOUT rxpin
#define rxPin 8
#define txPin 9
// RFID reader SOUT pin connected to Serial RX pin at 2400bps to pin8
 
int  val = 0;
char code[10];
int bytesread = 0;
 
void setup()
{  
  Serial.begin(9600);  // Hardware serial for Monitor 2400bps
  pinMode(ENABLE,OUTPUT);      // Set digital pin 2 as OUTPUT to connect it to the RFID /ENABLE pin
  digitalWrite(ENABLE, LOW);    // Activate the RFID reader
}
}
void loop()
{
  SoftwareSerial RFID = SoftwareSerial(rxPin,txPin);
  RFID.begin(2400);
  if((val = RFID.read()) == 10)
  {  // check for header
    bytesread = 0;
    while(bytesread<10)
    {  // read 10 digit code
      val = RFID.read();
      if((val == 10)||(val == 13))
      {  // if header or stop bytes before the 10 digit reading
        break;                      // stop reading
      }
      code[bytesread] = val;        // add the digit         
      bytesread++;                  // ready to read next digit 
    }
    if(bytesread == 10)
    {  // if 10 digit read is complete
      Serial.print("TAG code is: ");  // possibly a good TAG
      Serial.println(code);            // print the TAG code
    }
    bytesread = 0;
    delay(500);                      // wait for a second
  }
}
</source>
</source>

Verzia z 07:15, 3. október 2012

Čítačka RFID kariet



Aby sme sa vyhli zápasu o jediný sériový kanál procesora, pripojíme čítačku na iný pin a využijeme knižnicu SoftwareSerial cez rxPin=8

Popis zapojenia (nie je v konflikte ani s LCDAppMod):

   Arduino +5V to RFID Vcc 
   Arduino D9  to RFID /ENABLE
   Arduino D8  to RFID SOUT
   Arduino GND to RFID GND


Example code (modified source from Arduino Playground):

#include <SoftwareSerial.h>
// Hardware connections
#define ENABLE 11
#define SOUT rxpin
#define rxPin 8
#define txPin 9
// RFID reader SOUT pin connected to Serial RX pin at 2400bps to pin8

int  val = 0; 
char code[10]; 
int bytesread = 0; 

void setup()
{ 
  Serial.begin(9600);  // Hardware serial for Monitor 2400bps
  pinMode(ENABLE,OUTPUT);       // Set digital pin 2 as OUTPUT to connect it to the RFID /ENABLE pin 
  digitalWrite(ENABLE, LOW);    // Activate the RFID reader 
}

void loop()
{ 
  SoftwareSerial RFID = SoftwareSerial(rxPin,txPin); 
  RFID.begin(2400);

  if((val = RFID.read()) == 10)
  {   // check for header 
    bytesread = 0; 
    while(bytesread<10)
    {  // read 10 digit code 
      val = RFID.read(); 
      if((val == 10)||(val == 13))
      {  // if header or stop bytes before the 10 digit reading 
        break;                       // stop reading 
      } 
      code[bytesread] = val;         // add the digit           
      bytesread++;                   // ready to read next digit  
    } 

    if(bytesread == 10)
    {  // if 10 digit read is complete 
      Serial.print("TAG code is: ");   // possibly a good TAG 
      Serial.println(code);            // print the TAG code 
    }
    bytesread = 0; 
    delay(500);                       // wait for a second
  } 
}