arduino with RFID RC522A แสนง่าย
สวัสดีครับวันนี้ เรามาทดลองการเขียนโปรแกรม arduino กับเจ้าตัว RFID Module รุ่น RC522A
ที่ง่ายดาย ความถี่ของตัวอ่าน RFID อยู่ที่ 13.56 KHZ
ต่อมาเรามาดูวิธีการต่อใช้งานกันครับ
1 .IRQ (ไม่ใช้งาน)
2 .NSS เชื่อมต่อกับขา 10 ของ Arduino
3 .SCK เชื่อมต่อกับขา 13
4 .MOSI เชื่อมต่อกับขา 11
5 .MISO เชื่อมต่อกับขา 12
6 .GND เชื่อมต่อกับ Ground 0V
7 .RST เชื่อมต่อกับขา 9
8 .VCC เชื่อมต่อกับไฟ 3.3 V
เมื่อต่อวงจรเสร็จ ก็อย่าลืม load library ด้วยนะครับ
https://github.com/miguelbalboa/rfid
เมื่อลง library เสร็จ ก็มาดูที่ code ตัวอย่างครับ
/**
* MOSI: Pin 11 / ICSP-4
* MISO: Pin 12 / ICSP-1
* SCK: Pin 13 / ISCP-3
* SS: Pin 10
* RST: Pin 9
*/
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
// Setup variables:
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
if (rfid.serNum[0] != serNum0
&& rfid.serNum[1] != serNum1
&& rfid.serNum[2] != serNum2
&& rfid.serNum[3] != serNum3
&& rfid.serNum[4] != serNum4
) {
/* With a new cardnumber, show it. */
Serial.println(" ");
Serial.println("Card found");
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
//Serial.println(" ");
Serial.println("Cardnumber:");
Serial.print("Dec: ");
Serial.print(rfid.serNum[0],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[1],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[2],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[3],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[4],DEC);
Serial.println(" ");
Serial.print("Hex: ");
Serial.print(rfid.serNum[0],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[1],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[2],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[3],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[4],HEX);
Serial.println(" ");
} else {
/* If we have the same ID, just write a dot. */
Serial.print(".");
}
}
}
rfid.halt();
}
เมื่อ Up load code เสร็จ ก็ให้ดู output ทาง serialmonitor ครับ
ทดสอบลองนำบัตรทาบดูครับ จะมีรหัส RFID ขึ้นแสดงของแต่ละบัตรครับ
ขอให้สนุกกับการเขียนโปรแกรม
ตัวอย่างการต่อใช้งาน