Nikt tu nie jest tak bogaty by sprawdzać takie rzeczy, w życiu wystarcza jeden czytnik RFID. Oba interfejsy I2C i SPI są teoretycznie dostępne w tych czytnikach, jednak SPI jest szybszy, co będzie miło znaczenie przy dwóch podłączonych do jednego mastera. Oba interfejsy działają podobnie, Master pyta Slavy, to on inicjuje połączenie przy wysyłaniu rozkazów jak i przy zbieraniu danych z magistrali. Dlatego potrzebne są piny którymi Slave "podniesie rękę", że ma coś do powiedzenia. Na IC2 działałoby podobnie, mniej pinów, wolniej i konieczna ingerencja w czytniki by wymusić na nich tryb pracy w IC2 oraz jakoś je poadresować. W SPI wskazuje się pytanego stanem pinu SS, można ich definiować wiele, dla każdego Slava na magistrali osobny. Oba interfejsy są wewnątrz pudełkowe, do kilkudziesięciu cm kabelków, rozumiem, że mają być z dwóch stron ściany - może zadziałać. Trzeba mieć bibliotekę, która pozwala na tworzenie obiektów, stworzyć obiekt 1 z przypisanymi pinami do komunikacji z modułem 1, potem obiekt2 do komunikacji z modułem 2 i na zmianę z nimi rozmawiać.
Np. to mi się kompiluje, czy działa nie wiem:
Kod:
/*
--------------------------------------------------------------------------------------------------------------------
Example sketch/program showing An Arduino Door Access Control featuring RFID, EEPROM, Relay
--------------------------------------------------------------------------------------------------------------------
This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
Typical pin layout used:
-----------------------------------------------------------------------------------------
MFRC522 Arduino Arduino Arduino Arduino Arduino
Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
Signal Pin Pin Pin Pin Pin Pin
-----------------------------------------------------------------------------------------
RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
SPI SS SDA(SS) 10 53 D10 10 10
SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
*/
#include <SPI.h> // RC522 Module uses SPI protocol
#include <MFRC522.h> // Library for Mifare RC522 Devices
// Create MFRC522 instance.
#define SS_PIN 10
#define RST_PIN 9
#define SS_PIN2 8
#define RST_PIN2 2
MFRC522 mfrc522(SS_PIN, RST_PIN);
MFRC522 mfrc522b(SS_PIN2, RST_PIN2);
///////////////////////////////////////// Setup ///////////////////////////////////
void setup() {
//Arduino Pin Configuration
SPI.begin(); // MFRC522 Hardware uses SPI protocol
mfrc522.PCD_Init(); // Initialize MFRC522 Hardware
mfrc522b.PCD_Init(); // Initialize MFRC522 Hardware
}
///////////////////////////////////////// Main Loop ///////////////////////////////////
void loop () {
mfrc522.PICC_IsNewCardPresent(); // i inne takie co tam robicie z kartami RFID
mfrc522b.PICC_IsNewCardPresent();
}
Powinno być przerwanie (w UNO piny 2 i 3) wywoływane gdy jakaś karta zbliży się do danego czytnika i dla niej wywoływane funkcje do jej obsługi.
Podejrzewam, że działa, ten ktoś używa tej samej biblioteki:
https://www.youtube.com/watch?v=HmGmFknAIqc