Operácie

RFID reader: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Bez shrnutí editace
Balogh (diskusia | príspevky)
 
Riadok 73: Riadok 73:


</source>
</source>
[[Súbor:RFIDscreenshot.png]]

Aktuálna revízia z 07:16, 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
  } 
}