ติดตรงปีกกาบรรทัดเคสอะครับ ต้องใ่ยังไงครับ
#include <MFRC522.h>
//Get library from https://github.com/ljos/MFRC522
//Sketch: gudjonholm@gmail.com
#include <SPI.h>
/*
Pins SPI UNO Mega2560 Leonardo
1 (NSS) SAD (SS) 10 53 10
2 SCK 13 52 SCK1
3 MOSI 11 51 MOSI1
4 MISO 12 50 MISO1
5 IRQ * * *
6 GND GND GND GND
7 RST 6 ? Reset
8 +3.3V (VCC) 3V3 3V3 3.3V
* Not needed
1 on ICPS header
*/
#define SAD 10
#define RST 6
MFRC522 nfc(SAD, RST);
int a = 13;
void setup() {
SPI.begin();
Serial.begin(115200);
Serial.println("Looking for MFRC522.");
nfc.begin();
byte version = nfc.getFirmwareVersion();
if (! version) {
Serial.print("Didn't find MFRC522 board.");
while(1); //halt
}
Serial.print("Found chip MFRC522 ");
Serial.print("Firmware ver. 0x");
Serial.print(version, HEX);
Serial.println(".");
}
#define AUTHORIZED_COUNT 1 /*จะใช้การ์ดกี่ใบIf you want more Authorized of cards set the count here, and then add the serials below*/
byte Authorized[AUTHORIZED_COUNT][6] = {
{0xE3, 0xD, 0xAD, 0x35, 0xFF, 0xFF, }
/*,{0x10, 0x14, 0x39, 0x2E, 0xFF, 0xFF, }*/ /*f.เปลี่ยนรหัสบัตรตรงนี้ example how to add more authorized cards*/
};
void printSerial(byte *serial);
boolean isSame(byte *key, byte *serial);
boolean isAuthorized(byte *serial);
void loop() {
byte status;
byte data[MAX_LEN];
byte serial[5];
boolean Opening = false;
status = nfc.requestTag(MF1_REQIDL, data);
switch (isAuthorized(serial)){
case {0xE3, 0xD, 0xAD, 0x35, 0xFF, 0xFF, }:
Serial.println("Hello there ");
break;
default:
Serial.println(" other button ");
}
}//void loop()
boolean isSame(byte *key, byte *serial)
{
for (int i = 0; i < 4; i++) {
if (key[i] != serial[i])
{
return false;
}
}
return true;
}
boolean isAuthorized(byte *serial)
{
for(int i = 0; i<AUTHORIZED_COUNT; i++)
{
if(isSame(serial, Authorized[i]))
return true;
}
return false;
}
void printSerial(byte *serial)
{
Serial.print("Serial:");
for (int i = 0; i < 4; i++) {
Serial.print(serial[i], HEX);
Serial.print(" ");
}
}
โคดตามตัวอย่างในไลบารีเลยครับ ไม่ต้องแก้
ที่ผมแนะนำอีกอย่าง คืออย่าลืมเซตจัมเปอร์ที่บอร์ดจะเขียนไว้ให้ดูอยู่แล้วว่าติดต่อ แบบ I2C หรือ SPI ต้องเซตยังไง
ือีกทีครับ พอโค้ด ข้างบน มันติด error ตรงบรรทัดที่เป็น case อะครับ ขึ้นแบบนี้ครับ expected primary-expression before '{' token แล้วผมหาไม่เจอว่าจะต้องใส่ { เพิ่มตรงไหนอีกครับ ถ้าต่อเป็น I2C จะแก้ได้ไหมครับ หรือว่าไม่เกี่ยวกันครับ
จริง ๆ ผมอยากให้ลองไล่ดูเองจะได้ฝึกฝีมือ โคดเท่านี้ไม่น่าเกินฝีมือครับ ต่อแบบ i2c หรือ SPI ก็ได้มีในตัวอย่างในไลบารีครับ