/* RFID-TCA9548A-5A Programmet leser av ID-koden til flere kort koblet til en multiplekser og skriver ID-kodene ut som fire HEX tall Nils Kr. Rossing 14.03.23 */ #include "MFRC522_I2C.h" #include "TCA9548A.h" #include TCA9548A I2CMux; // Adressen 0x70 overføres via biblioteket MFRC522 mfrc522(0x28, 3); // Deklarer et MFRC522 objekt, 0x28 er I2C adressen, 3 angir pinne nr. som styrer Reset som ikke brukes her. void setup() { Serial.begin(9600); Wire.begin(); I2CMux.begin(Wire); // Wire instance is passed to the library for (int i = 4; i < 8; i++) { I2CMux.openChannel(i); delay(20); mfrc522.PCD_Init(); delay(20); I2CMux.closeChannel(i); } I2CMux.closeAll(); // Set a base state which we know (also the default state on power on) Serial.println("RFID-TCA9548A-1"); } void loop() { for (int i = 4; i < 8; i++) { I2CMux.openChannel(i); readRFID(); readRFID(); delay(20); I2CMux.closeChannel(i); } Serial.println("----------------"); } void readRFID() { if ( mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial() ) { // Skriv ut UID Serial.print(F("Kort UID: ")); for (byte i = 0; i < mfrc522.uid.size; i++) { if (mfrc522.uid.uidByte[i] < 0x10) Serial.print("0"); // Legg til en "0" om verden er < 0x10 Serial.print(mfrc522.uid.uidByte[i], HEX); Serial.print(" "); } Serial.println(); } }