ich hatte diese frage bereits im Arduino Forum (Link) gestellt konnte mir aber keiner weiterhelfen, hoffentlich könnt ihr mir helfen
Ich habe mir ein RFID reader gekauft (RC255) und eine LED sind am Arduino Uno angeschlossen (alles ist richtig verkabelt), doch die LED leuchtet nur eine Millisekunde obwohl er 5 sek leuchten sollte.
Der code ist größten teils von ChatGPT, aber auch bisl von mir.
Danke schon mal im vorraus!
Das ist der code:
(PS: die UIDs habe ich natürlich geänder für das forum)
Ich habe mir ein RFID reader gekauft (RC255) und eine LED sind am Arduino Uno angeschlossen (alles ist richtig verkabelt), doch die LED leuchtet nur eine Millisekunde obwohl er 5 sek leuchten sollte.
Der code ist größten teils von ChatGPT, aber auch bisl von mir.
Danke schon mal im vorraus!
Das ist der code:
(PS: die UIDs habe ich natürlich geänder für das forum)
C:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10 // Chip Select Pin
#define RST_PIN 9 // Reset Pin
MFRC522 rfid(SS_PIN, RST_PIN); // Create MFRC522 instance
// Hier die erlaubten UID-Werte eintragen (Hex-Format)
byte allowedUID1[] = {0xD5, 0xBC, 0x41, 0x53}; // Name1
byte allowedUID2[] = {0x63, 0xE0, 0x06, 0xB7}; // Name2
int plusPin = A5; // Pin für Plus-Strom
int minusPin = A4; // Pin für Minus-Strom
bool accessGranted = false;
// Hier die Namen den erlaubten UID-Werten zuordnen
String allowedNames[] = {"Name1", "Name2"};
void setup() {
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
pinMode(plusPin, OUTPUT);
pinMode(minusPin, OUTPUT);
digitalWrite(plusPin, LOW); // Setze Anfangszustand aus
digitalWrite(minusPin, LOW);
Serial.println("Bereit zum Scannen...");
}
void loop() {
accessGranted = false;
// Versuche eine RFID-Karte zu erkennen
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
Serial.println("Karte erkannt!");
byte uid[4];
for (byte i = 0; i < 4; i++) {
uid[i] = rfid.uid.uidByte[i];
}
// Überprüfe, ob die UID mit den erlaubten UIDs übereinstimmt
bool matchUID1 = compareUID(uid, allowedUID1);
bool matchUID2 = compareUID(uid, allowedUID2);
if (matchUID1 || matchUID2) {
accessGranted = true;
if (matchUID1) {
Serial.println("Willkommen, " + allowedNames[0]);
} else {
Serial.println("Willkommen, " + allowedNames[1]);
}
digitalWrite(plusPin, HIGH);
digitalWrite(minusPin, HIGH);
delay(5000); // Strom für 5 Sekunden einschalten
digitalWrite(plusPin, LOW);
digitalWrite(minusPin, LOW);
Serial.println("Strom ausgeschaltet!");
} else {
Serial.println("Zugriff verweigert - Unbekannte Karte!");
}
rfid.PICC_HaltA(); // Halt PICC (Power-down the card)
rfid.PCD_StopCrypto1(); // Stop encryption on PCD
}