1.2.57. fejezet, NFC RC522 + adattovábbítás Ethernet hálózaton

RC522-es NFC író/olvasó SPI kommunikációval csatlakozik az Arduino-hoz. Ezen módon több eszköz kapcsolható össze, ám ezek a kapcsolatok a OneWire-hez képest különleges vezérlést igényel, mive minden eszközhöz egy SS port (Slave Select) vagy más néven CS (Cable Select) vezeték tartozik. Ezek magas állapotban tiltják, alacsony állapotban aktíválják az eszközöket.

#include <SPI.h>
#include <MFRC522.h>
 
#define RST_PIN         9         
#define SD_SS_PIN       4
#define RC522_SS_PIN    5
#define ETH_SS_PIN     10         
 
void setup() {
  Serial.begin(9600); 
  while (!Serial);    // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)  
  Serial.println(F("SPI begin..."));
// SET each SPI slave to not listen eachother init message
  pinMode(RC522_SS_PIN, OUTPUT);
  digitalWrite(RC522_SS_PIN, HIGH);
  pinMode(ETH_SS_PIN, OUTPUT);
  digitalWrite(ETH_SS_PIN, HIGH);
  pinMode(SD_SS_PIN, OUTPUT);
  digitalWrite(SD_SS_PIN, HIGH);
 
  SPI.begin();      // Init SPI bus
 
  //SPI.setClockDivider(SPI_CLOCK_DIV4); //Not required for now
  //SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
 
  MFRC522 mfrc522(RC522_SS_PIN, RST_PIN);  // Create MFRC522 instance
  Serial.println(F("Init RC522..."));
  mfrc522.PCD_Init();   // Init MFRC522
  mfrc522.PCD_DumpVersionToSerial();  // Show details of PCD - MFRC522 Card Reader details
  Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
 
  //SPI.endTransaction();
}
 
void loop() {
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
 
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }
 
  // Dump debug info about the card; PICC_HaltA() is automatically called
  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

Kapcsolódó hivatkozások